如何计算 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 中执行其他常见任务: