我正在尝试计算数据子集的一个子集的平均值。
比如假设我的数据是
**Family Name / Gender / Grade**
Smith / Male / 90
Smith / Male / 85
Smith / Female / 65
Smith / Female / 100
Johns / Male / 95
Johns / Male / 45
Johns / Female / 20
Johns / Female / 100
所以我想做的是计算史密斯家族女性的平均成绩。答案是 (65+100)/2。
我知道如何计算它的均值,但我不知道如何将它分成两次子类别。
我的代码是:
numpy.mean(students.grade)
我也试过一个方法:
smith_family = students[students['Family Name'] == 'Smith']
np.mean(smith_family.grades)
但这种方法不可扩展,因为我必须手动输入每个姓氏。
我编造了数据;我实际上是在用动物和人们对动物的评级来做这件事,但这是同一个概念。
附言我正在使用 Python。
最佳答案
您将在此处使用 groupby
:
students[students['Family Name'] == 'Smith'].groupby('Gender').Grade.mean()
关于python - 如何在 Python 中计算数据帧子集的一个子集的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49245451/