본문 바로가기

Data/SQL

SQL vs. Pandas 비교 (1) - SELECT, WHERE, GROUP BY, LIMIT

처음 SQL을 공부하면서 Python의 Pandas 라이브러리와 많이 비슷하다는 생각이 들어 동일한 결과값을 출력하게 끔 하는 SQL 쿼리문과 Pandas 코드를 비교해보고자 합니다.

 

비교를 위해 아래 나와 있는 NBA 선수들의 연봉 정보를 가지고 SELECT, FROM, WHERE, GROUP BY, LIMIT 등 SQL 문법을 Pandas로 어떻게 구현하는지 함께 보도록 하겠습니다.

 

NBA 선수 연봉 테이블

[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 등과 같이 금번 내용보다 조금 심화된 문법을 비교해보도록 하겠습니다.