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

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

Pandas で列の平均を計算する方法
Pandas で移動平均を計算する方法
パンダでNaN値を平均値で埋める方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です