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: 그룹별 상관관계를 계산하는 방법