Today I Learned/SQL
[SQL] SQL , Pandas 같은 데이터 출력하기
하나719
2020. 10. 28. 01:04
반응형
SQL과 pandas 문법으로 각각 같은 데이터를 출력해보자
1. 전체 player_id, 유니크 player_id
SQL - COUNT(column), COUNT(Distinct column)
SELECT count(player_id), count(distinct player_id)
FROM table_name
Pandas - colums.count(), column.nunique()
df_all['player_id'].count() #count
df_all['player_id'].nunique() #unique count
2. id별 Game 횟수
* row 1개가 game 1회에 대한 정보를 담고 있음
SQL - GROUP BY
SELECT player_id, count(*) AS '게임횟수'
FROM table_name
GROUP BY player_id
Pandas - groupby.size()
df_all.groupby('player_id').size().to_frame('게임횟수').sort_values('게임횟수',ascending=False)
3. player_id에서 team 명 추출하기
* player_id가 team명_playername 으로 구성되어 있음
ex. 팀명: DATA, 이름: hana -> player_id : DATA_hana
SQL - substring_index(string , ' 구분값' , 인덱스)
SELECT player_id, substring_index(player_id,'_',1) AS Team
FROM esports_matches_summary_stats
GROUP BY player_id
Pandas - df.columns.split('구분값')
df_all['player_id'].str.split('_',expand=True)[0])
같은 데이터를 출력하는데에 논리적인 로직은 비슷하지만, SQL과 Pandas의 표현 방법은 다르다.
그래도 하나를 배우면 나머지 한쪽에서는 좀 더 빠르게 적용해볼 수 있는것 같다.
반응형