[SAS SQL into Python]

Sooyeon, Lee
4 min readApr 13, 2021

kaggle의 유명한 tips data를 이용해 sql구문을 python으로 확인해보자

data set url : https://www.kaggle.com/ranjeetjain3/seaborn-tips-dataset

데이터 읽어오기

import pandas as pdtips=pd.read_csv('데이터 경로/tips.csv')

데이터 미리보기

tips.head()
tips.info()

컬럼은 total_bill (float), tip (float) 나머지 컬럼 sex, smoker, day, time, size은 object(=char)의 데이터타입을 갖는다.

SAS SQL INTO PYTHON

1. SELECT

TOTAL_BILL과 TIP만 SELECT 하는 SAS SQL 구문

PROC SQL;
SELECT TOTAL_BILL, TIP
FROM TIPS
;
QUIT;

TOTAL_BILL과 TIP만 SELECT 하는 PYTHON 구문

Q. 팁은 보통 bill의 몇프로정도 줄까?

결과 값을 소숫점 2자리에서 반올림한 결과 bill의 16.08% 정도를 팁으로 냄을 확인 할 수 있다.

WHERE

흡연자만 필터링해서 뽑는 SAS SQL 구문

PROC SQL;
SELECT *
FROM TIPS
WHERE SMOKER='Yes'
;
QUIT;

흡연자만 필터링해서 뽑는 python 구문

‘여성’ 흡연자만 필터링해서 뽑는 SAS SQL 구문

PROC SQL;
SELECT *
FROM TIPS
WHERE SMOKER='Yes'
AND SEX='Female'
;
QUIT;

‘여성’ 흡연자만 필터링해서 뽑는 python 구문

Q. 팁을 안주고간 사람들고 있나?

PROC SQL;
SELECT *
FROM TIPS
WHERE TIP IS 0 OR NULL
;
QUIT;

신기하게 팁은 안주고 간 사람은 없는가 봅니다,,

GROUP BY

Q. 날짜별 시간별 주는 팁의 분포가 다를까?

금요일 저녁은 사람들이 주말을 생각하면서 기분이 좋아서 팁을 더 많이 주고 가지 않을까? 라는 생각에 궁금해졌습니다. day는 목,금,토,일의 해당요일의 데이터로 구성되어있습니다.

PROC SQL;SELECT DAY, TIME
COUNT(*) AS CNT
FROM TIPS
GROUP BY 1,2
;
QUIT;

해당 쿼리를 python을 바꾼다면? 다음과 같이 확인이 가능합니다. 의외로 금요일의 저녁보다 목요일 점심 시간이 훨씬 많았고, 특히 주말 저녁은 수치가 넘사벽이었네요.

--

--

Sooyeon, Lee

Interested in AI, ML, agile, community domain. Love Zumba!