Pandas: 인덱스별로 그룹화하고 계산을 수행하는 방법
다음 방법을 사용하여 Pandas에서 하나 이상의 인덱스 열을 그룹화하고 계산을 수행할 수 있습니다.
방법 1: 인덱스 열을 기준으로 그룹화
df. groupby (' index1 ')[' numeric_column ']. max ()
방법 2: 여러 인덱스 열을 기준으로 그룹화
df. groupby ([' index1 ',' index2 '])[' numeric_column ']. sum ()
방법 3: 인덱스 열과 일반 열을 기준으로 그룹화
df. groupby ([' index1 ',' numeric_column1 '])[' numeric_column2 ']. nunique ()
다음 예에서는 MultiIndex가 있는 다음 pandas DataFrame과 함께 각 메서드를 사용하는 방법을 보여줍니다.
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
' position ': ['G', 'G', 'G', 'F', 'F', 'G', 'G', 'F', 'F', 'F'],
' points ': [7, 7, 7, 19, 16, 9, 10, 10, 8, 8],
' rebounds ': [8, 8, 8, 10, 11, 12, 13, 13, 15, 11]})
#set 'team' column to be index column
df. set_index ([' team ', ' position '], inplace= True )
#view DataFrame
df
rebound points
team position
A G 7 8
G 7 8
G 7 8
F 19 10
F 16 11
B G 9 12
G 10 13
F 10 13
F 8 15
F 8 11
방법 1: 인덱스 열을 기준으로 그룹화
다음 코드는 “position” 인덱스 열로 그룹화된 “points” 열의 최대값을 찾는 방법을 보여줍니다.
#find max value of 'points' grouped by 'position index column
df. groupby (' position ')[' points ']. max ()
position
F 19
G 10
Name: points, dtype: int64
방법 2: 여러 인덱스 열을 기준으로 그룹화
다음 코드는 “팀” 및 “위치” 인덱스 열로 그룹화된 “포인트” 열의 합계를 찾는 방법을 보여줍니다.
#find max value of 'points' grouped by 'position index column
df. groupby ([' team ', ' position '])[' points ']. sum ()
team position
AF35
G21
BF 26
G 19
Name: points, dtype: int64
방법 3: 인덱스 열과 일반 열을 기준으로 그룹화
다음 코드는 “팀” 인덱스 열과 일반 “포인트” 열로 그룹화된 “리바운드” 열의 고유 값 수를 찾는 방법을 보여줍니다.
#find max value of 'points' grouped by 'position index column
df. groupby ([' team ', ' points '])[' rebounds ']. nunique ()
team points
At 7 1
16 1
19 1
B 8 2
9 1
10 1
Name: rebounds, dtype: int64
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
팬더에서 고유한 값을 계산하는 방법
Pandas에서 MultiIndex를 평면화하는 방법
Pandas에서 하나 이상의 인덱스 값을 수정하는 방법
Pandas에서 인덱스를 재설정하는 방법