Pandas で条件付き平均を計算する方法 (例あり)
次の構文を使用して、pandas で条件付き平均を計算できます。
df. loc [df[' team '] == ' A ', ' points ']. mean ()
これにより、「チーム」列が「A」に等しいデータフレーム内の各行の「ポイント」列の平均が計算されます。
次の例は、実際に次の pandas DataFrame でこの構文を使用する方法を示しています。
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B'],
' points ': [99, 90, 93, 86, 88, 82],
' assists ': [33, 28, 31, 39, 34, 30]})
#view DataFrame
print (df)
team points assists
0 to 99 33
1 A 90 28
2 A 93 31
3 B 86 39
4 B 88 34
5 B 82 30
例 1: カテゴリ変数の条件付き平均を計算する
次のコードは、データフレーム内の「チーム」列の値が「A」である行のみの「ポイント」列の平均を計算する方法を示しています。
#calculate mean of 'points' column for rows where team equals 'A'
df. loc [df[' team '] == ' A ', ' points ']. mean ()
94.0
「チーム」が「A」に等しい行の「ポイント」列の平均値は94です。
「チーム」が「A」に等しい行のみのポイント値を平均することで、これを手動で確認できます。
- 平均点: (99 + 90 + 93) / 3 = 94
例 2: 数値変数の条件付き平均を計算する
次のコードは、「points」列の値が 90 以上である DataFrame 内の行のみの「assists」列の平均を計算する方法を示しています。
#calculate mean of 'assists' column for rows where 'points' >= 90
df. loc [df[' points '] >= 90 , ' assists ']. mean ()
30.666666666666668
「ポイント」が 90 以上である行の「アシスト」列の平均値は30.66667です。
「チーム」が「A」に等しい行のみのポイント値を平均することで、これを手動で確認できます。
- 平均アシスト数: (33 + 28 + 31) / 3 = 30.66667
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。