Pandas: 두 열을 그룹화하고 집계하는 방법


Pandas의 groupby() 함수와 함께 다음 기본 구문을 사용하여 두 열을 그룹화하고 다른 열을 집계할 수 있습니다.

 df. groupby ([' var1 ',' var2 '])[' var3 ']. mean ()

이 특정 예에서는 var1var2 열을 기준으로 DataFrame을 그룹화한 다음 var3 열의 평균을 계산합니다.

다음 예에서는 다음 Pandas DataFrame을 사용하여 두 열을 그룹화하고 집계하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'],
                   ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team position points
0 AG 15
1 AG 22
2 AF 24
3 AF 25
4 AF 20
5 BG 35
6 BG 34
7 BG 19
8 BG 14
9 BF 12

예 1: 두 열을 그룹화하고 다른 열의 평균 계산

다음 구문을 사용하여 위치 열별로 그룹화된 포인트 열의 평균 값을 계산할 수 있습니다.

 #calculate mean of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. mean ()

team position
AF23.0
      G 18.5
BF 12.0
      G 25.5
Name: points, dtype: float64

결과에서 우리는 다음을 볼 수 있습니다:

  • F 포지션에 있는 A팀 선수들의 평균 포인트 값은 23 입니다.
  • G 포지션에 있는 A팀 선수들의 평균 포인트 값은 18.5 입니다.

등등.

예 2: 두 열을 그룹화하고 다른 열의 최대값 계산

다음 구문을 사용하여 위치 열별로 그룹화된 포인트 열의 최대값을 계산할 수 있습니다.

 #calculate max of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. max ()

team position
AF25
      G22
BF 12
      G 35
Name: points, dtype: int64

결과에서 우리는 다음을 볼 수 있습니다:

  • F 포지션에 있는 A팀 선수들의 최대 포인트 값은 25 입니다.
  • G 포지션에 있는 A팀 선수의 최대 포인트 값은 22 입니다.

등등.

예 3: 두 개의 열을 기준으로 그룹화하고 발생 횟수 계산

다음 구문을 사용하여 직책 열의 각 조합 발생 횟수를 계산할 수 있습니다.

 #count occurrences of each combination of team and position columns
df. groupby ([' team ', ' position ']). size ()

team position
AF3
      G2
BF 1
      G4
dtype: int64

결과에서 우리는 다음을 볼 수 있습니다:

  • A팀 F포지션에는 3명의 선수가 있습니다.
  • A팀의 G 포지션에는 2명의 선수가 있습니다.

등등.

추가 리소스

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

Pandas GroupBy를 사용하여 고유한 값을 계산하는 방법
Pandas Groupby에 기능을 적용하는 방법
Pandas GroupBy에서 막대 그래프를 만드는 방법

의견을 추가하다

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