python - 如何在 Python 中计算数据帧子集的一个子集的平均值?

标签 python pandas dataframe

我正在尝试计算数据子集的一个子集的平均值。

比如假设我的数据是

 **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/

相关文章:

python - Pandas :拆分索引字符串并汇总相等切片的行

apache-spark - 从多个源创建单个 Spark Dataframe?

r - 在R中使用apply或map函数时如何将列名传递给函数?

python - Pandas :如何根据其他列值的条件对列求和?

python - matplotlib 中的模糊圆圈和椭圆

Python 自动将一些字符串转换为原始字符串?

c++ - 如何将值从 python 传递给 C++ 并返回?

python - 计算一组坐标之间的距离

python - 循环遍历 pandas 数据框,将公式应用于每个值

python - pandas : pd. concat 导致重复的列