[SAS SQL into Python]
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을 바꾼다면? 다음과 같이 확인이 가능합니다. 의외로 금요일의 저녁보다 목요일 점심 시간이 훨씬 많았고, 특히 주말 저녁은 수치가 넘사벽이었네요.