Pandas groupby 출력을 dataframe으로 변환하는 방법


이 튜토리얼에서는 pandas GroupBy의 출력을 pandas DataFrame으로 변환하는 방법을 설명합니다.

예: Pandas GroupBy 출력을 DataFrame으로 변환

서로 다른 팀의 농구 선수들이 득점한 점수를 보여주는 다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 10, 12, 22, 15, 10]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2AF 7
3 AC 10
4 BG 12
5 BF 22
6 BF 15
7 BF 10

다음 구문을 사용하여 포지션 별로 그룹화된 플레이어 수를 계산할 수 있습니다.

 #count number of players, grouped by team and position
group = df. groupby ([' team ', ' position ']). size ()

#viewoutput
print (group)

team position
AC 1
      F 1
      G2
BF 3
      G 1
dtype: int64

출력에서 포지션 별로 그룹화된 총 플레이어 수를 볼 수 있습니다.

그러나 출력 결과에 다음과 같이 각 행에 팀 이름이 표시되기를 원한다고 가정해 보겠습니다.

 team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

이 결과를 얻으려면 GroupBy를 실행할 때 간단히 Reset_index()를 사용하면 됩니다.

 #count number of players, grouped by team and position
df_out = df. groupby ([' team ', ' position ']). size (). reset_index (name=' count ')

#viewoutput
print (df_out)

  team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

이제 출력이 원하는 형식으로 나타납니다.

Reset_index()name 인수는 GroupBy에서 생성된 새 열의 이름을 지정합니다.

또한 결과가 실제로 pandas DataFrame인지 확인할 수도 있습니다.

 #display object type of df_out
type (df_out)

pandas.core.frame.DataFrame

참고 : 여기 에서 pandas의 GroupBy 작업에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas: 그룹당 누적 합계를 계산하는 방법
Pandas: 그룹별로 고유한 값을 계산하는 방법
Pandas: 그룹별 상관관계를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다