Pandas: 여러 열을 그룹화하고 집계하는 방법
Pandas DataFrame의 여러 열을 그룹화하고 집계하려는 경우가 종종 있습니다.
다행히도 pandas .groupby() 및 .agg() 함수를 사용하면 이 작업을 쉽게 수행할 수 있습니다.
이 튜토리얼에서는 이러한 기능의 실제 사용에 대한 몇 가지 예를 설명합니다.
예 1: 두 개의 열로 그룹화하고 평균 찾기
다음과 같은 팬더 DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrame df = pd.DataFrame({'team': ['A', 'B', 'B', 'B', 'B', 'M', 'M', 'M'], 'position': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'], 'assists': [5, 7, 7, 8, 5, 7, 6, 9], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10]}) #view DataFrame print (df) team position assists rebounds 0 AG 5 11 1 BG 7 8 2 BF 7 10 3 BG 8 6 4 BF 5 6 5 MF 7 9 6 MC 6 6 7 MC 9 10
다음 코드는 “팀” 및 “포지션” 열을 기준으로 그룹화하고 평균 패스를 찾는 방법을 보여줍니다.
df. groupby (['team', 'position']). agg ({'assists': ['mean']}). reset_index () team position assists mean 0 A G 5.0 1 B F 6.0 2 B G 7.5 3 M C 7.5 4M F 7.0
출력은 다음을 알려줍니다.
- A팀 G포지션 선수들의 평균 어시스트는 5.0 이다.
- B팀의 F포지션 선수들의 평균 어시스트는 6.0 이다.
- B팀의 G 포지션 선수들의 평균 어시스트는 7.5개이다 .
등등.
다음 코드를 사용하여 결과 DataFrame의 열 이름을 바꿀 수도 있습니다.
#group by team and position and find mean assists new = df. groupby (['team', 'position']). agg ({'assists': ['mean']}). reset_index () #rename columns new.columns = ['team', 'pos', 'mean_assists'] #view DataFrame print (new) team pos mean_assists 0 A G 5.0 1 B F 6.0 2 B G 7.5 3 M C 7.5 4M F 7.0
예 2: 두 개의 열로 그룹화하고 여러 통계 찾기
이전 예제와 동일한 pandas DataFrame을 사용한다고 가정해 보겠습니다.
import pandas as pd #createDataFrame df = pd.DataFrame({'team': ['A', 'B', 'B', 'B', 'B', 'M', 'M', 'M'], 'position': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'], 'assists': [5, 7, 7, 8, 5, 7, 6, 9], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10]})
다음 코드는 “팀” 및 “포지션” 열로 그룹화된 중앙값 및 최대 리바운드 수를 찾는 방법을 보여줍니다.
df. groupby (['team', 'position']). agg ({'rebounds': ['median', 'max']}). reset_index () team position rebounds median max 0 A G 11 11 1 B F 8 10 2 B G 7 8 3 M C 8 10 4 M F 9 9
출력은 다음을 알려줍니다.
- A팀에서 G 포지션에 있는 선수들의 리바운드 중앙값은 11 입니다.
- A팀의 G 포지션 선수들의 최대 리바운드는 11개이다 .
- B팀 F포지션 선수들의 리바운드 중앙값은 8 이다.
- B팀 F포지션 선수들의 최대 리바운드는 10개이다 .
등등.
추가 리소스
여러 조건에서 Pandas DataFrame을 필터링하는 방법
Pandas DataFrame에서 누락된 값을 계산하는 방법
여러 Pandas DataFrame을 스택하는 방법