Pandas: 그룹 내 전체 비율을 계산하는 방법


다음 구문을 사용하여 Panda 그룹 내 합계의 백분율을 계산할 수 있습니다.

 df[' values_var '] / df. groupby (' group_var ')[' values_var ']. transform (' sum ')

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: 그룹 내 합계의 백분율 계산

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [12, 29, 34, 14, 10, 11, 7, 36, 34, 22]})

#view DataFrame
print (df)

  team points
0 to 12
1 to 29
2 to 34
3 to 14
4 to 10
5 B 11
6 B 7
7 B 36
8 B 34
9 B 22

다음 구문을 사용하여 팀별로 그룹화된 총 득점 백분율을 표시하는 DataFrame에 새 열을 만들 수 있습니다.

 #calculate percentage of total points scored grouped by team
df[' team_percent '] = df[' points '] / df. groupby (' team ')[' points ']. transform (' sum ')

#view updated DataFrame
print (df)

  team points team_percent
0 A 12 0.121212
1 A 29 0.292929
2 A 34 0.343434
3 A 14 0.141414
4 A 10 0.101010
5 B 11 0.100000
6 B 7 0.063636
7 B 36 0.327273
8 B 34 0.309091
9 B 22 0.200000

team_percent 열은 해당 선수가 팀에서 득점한 총점의 백분율을 나타냅니다.

예를 들어 A팀 선수는 총 99 점을 획득했습니다.

따라서 DataFrame의 첫 번째 행에 있는 플레이어는 12 점을 획득하여 총 12/99 = Team A 총점의 12.12% 를 획득했습니다.

마찬가지로 DataFrame의 두 번째 행에 있는 플레이어는 29 점을 획득하여 A팀 총점의 29/99 = 29.29% 를 획득했습니다.

등등.

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

추가 리소스

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

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

의견을 추가하다

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