Pandas에서 groupby 합계를 수행하는 방법(예제 포함)


다음 기본 구문을 사용하여 팬더에서 그룹별 값의 합계를 찾을 수 있습니다.

 df. groupby ([' group1 ',' group2 '])[' sum_col ']. sum (). reset_index ()

다음 예는 다음 pandas 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', 'C'],
                   ' points ': [25, 17, 14, 9, 12, 9, 6, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

	team position points rebounds
0 A G 25 11
1 A G 17 8
2 A F 14 10
3 A C 9 6
4 B G 12 6
5 B F 9 5
6 B F 6 9
7 B C 4 12

예 1: 열을 기준으로 그룹화, 열 추가

다음 코드는 열별로 그룹화하고 열의 값을 합산하는 방법을 보여줍니다.

 #group by team and sum the points
df. groupby ([' team '])[' points ']. sum (). reset_index ()

	team points
0 to 65
1 B 31

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

  • A팀 선수들은 총 65 점을 획득했습니다.
  • B팀 선수들은 총 31 득점을 기록했다.

예 2: 여러 열로 그룹화, 여러 열 추가

다음 코드는 여러 열을 그룹화하고 여러 열을 합산하는 방법을 보여줍니다.

 #group by team and position, sum points and rebounds
df. groupby ([' team ', ' position '])[' points ', ' rebounds ']. sum (). reset_index ()

        team position points rebounds
0 A C 9 6
1 A F 14 10
2 A G 42 19
3 B C 4 12
4 B F 15 14
5 B G 12 6

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

  • C 포지션의 A팀 선수들은 총 9 득점 6 리바운드를 기록했다.
  • F 포지션의 A팀 선수들은 총 14 득점, 10 리바운드를 기록했다.
  • A팀의 G포지션 선수들은 총 42 득점, 19 리바운드를 기록했다.

등등.

Reset_index() 함수는 그룹화 열이 인덱스의 일부가 되는 것을 방지합니다.

예를 들어, 사용하지 않을 경우의 결과는 다음과 같습니다.

 #group by team and position, sum points and rebounds
df. groupby ([' team ', ' position '])[' points ', ' rebounds ']. sum ()

                 rebound points
team position		
A C 9 6
F 14 10
G 42 19
B C 4 12
F 15 14
G 12 6

결과를 표시하는 방법에 따라 Reset_index() 함수를 사용하도록 선택할 수도 있고 선택하지 않을 수도 있습니다.

추가 리소스

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

팬더에서 그룹 목격 횟수를 계산하는 방법
Pandas에서 그룹당 최대값을 찾는 방법
Pandas에서 그룹별로 분위수를 계산하는 방법

의견을 추가하다

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