如何计算 pandas 的条件均值(附示例)


您可以使用以下语法来计算 pandas 中的条件平均值:

 df. loc [df[' team '] == ' A ', ' points ']. mean ()

这将计算 DataFrame 中每行“points”列的平均值,其中“team”列等于“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:计算分类变量的条件均值

以下代码显示如何仅计算 DataFrame 中“team”列值为“A”的行的“points”列的平均值。

 #calculate mean of 'points' column for rows where team equals 'A'
df. loc [df[' team '] == ' A ', ' points ']. mean ()

94.0

“team”等于“A”的行的“points”列中的平均值为94

我们可以通过仅对“team”等于“A”的行的点值进行平均来手动检查这一点:

  • 平均分:(99 + 90 + 93) / 3 = 94

示例 2:计算数值变量的条件平均值

以下代码演示如何仅计算 DataFrame 中“points”列的值大于或等于 90 的行的“assists”列的平均值。

 #calculate mean of 'assists' column for rows where 'points' >= 90
df. loc [df[' points '] >= 90 , ' assists ']. mean ()

30.666666666666668

“points”大于或等于 90 的行的“assists”列中的平均值为30.66667

我们可以通过仅对“team”等于“A”的行的点值进行平均来手动检查这一点:

  • 平均助攻数:(33 + 28 + 31) / 3 = 30.66667

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

如何计算 Pandas 中列的平均值
如何计算 Pandas 的移动平均线
如何在 pandas 中用均值填充 NaN 值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注