パンダ: グループ内の合計のパーセンテージを計算する方法
次の構文を使用して、パンダ グループ内の合計の割合を計算できます。
df[' values_var '] / df. groupby (' group_var ')[' values_var ']. transform (' sum ')
次の例は、この構文を実際に使用する方法を示しています。
例: グループ内の合計に対する割合を計算します。
さまざまなチームのバスケットボール選手が獲得したポイントを示す次のパンダ データフレームがあるとします。
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ポイントを獲得しました。
したがって、 12ポイントを獲得したデータフレームの最初の行のプレーヤーは、合計 12/99 = チーム A の合計ポイントの12.12%を獲得したことになります。
同様に、 29ポイントを獲得したデータフレームの 2 行目のプレーヤーは、合計 29/99 = チーム A の合計ポイントの29.29%を獲得しました。
等々。
注: GroupBy関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas: グループごとの累積合計を計算する方法
パンダ: グループごとに一意の値を数える方法
Pandas: グループごとにモードを計算する方法
パンダ: グループごとの相関を計算する方法