처음 SQL을 공부하면서 Python의 Pandas 라이브러리와 많이 비슷하다는 생각이 들어 동일한 결과값을 출력하게 끔 하는 SQL 쿼리문과 Pandas 코드를 비교해보고자 합니다.
비교를 위해 아래 나와 있는 NBA 선수들의 연봉 정보를 가지고 SELECT, FROM, WHERE, GROUP BY, LIMIT 등 SQL 문법을 Pandas로 어떻게 구현하는지 함께 보도록 하겠습니다.
[SELECT] 선수, 연봉 정보
SQL
SELECT player, salary
FROM players;
Pandas
players[['player', 'salary']]
[WHERE] 포지션이 센터인 선수의 팀명과 연봉 정보
SQL
SELECT team, player, salary, position
FROM players
WHERE position = 'C'
Pandas
players[players['position'] == 'C']
[GROUP BY] NBA 팀별 평균 연봉
SQL
SELECT team, ROUND(AVG(salary), 1) AS avg_salary
FROM players
GROUP BY team
ORDER BY avg_salary DESC;
Pandas
t_salary = players.groupby(['team'], as_index=False)['team','salary'].mean().round(1).sort_values(by='salary', ascending=False)
t_salary = t_salary.rename(columns={'salary':'avg_salary'}) # 컬럼명 변경
[LIMIT] 포지션이 센터인 선수의 팀명과 연봉 정보
SQL
SELECT player, salary, team
FROM players
ORDER BY salary DESC
LIMIT 10;
Pandas
players[['player', 'salary', 'team']].sort_values(by='salary', ascending=False).head(10)
다음에는 JOIN, PIVOT, WINDOW FUCTION 등과 같이 금번 내용보다 조금 심화된 문법을 비교해보도록 하겠습니다.
'Data > SQL' 카테고리의 다른 글
SQL 실무 : 나이, 연령대, 연령대별 회원수 계산 (0) | 2022.02.17 |
---|---|
SQL 실무 : 매출 누계, 전년동기 증감율(YoY) 계산 (1) | 2022.02.10 |
SQL 고급 : 집계 함수 vs. 윈도우 함수 비교 (0) | 2022.02.09 |
SQL vs. Pandas 비교 (2) - JOIN, PIVOT, WINDOW FUNCTIONS (0) | 2022.02.09 |
SQL 고급 : 서브쿼리(Sub-query) (0) | 2021.06.24 |