首页 > 解决方案 > 如何计算高于某个值的平均值的数量

问题描述

嗨,需要一些 Pandas Cod 的帮助!问题是如何获取 df 和 groupBy 年龄分数的平均值并将其与 df['Score'].mean 进行比较并计算 df['score'].mean 以上的结果,这里的计数结果也需要 groupBy age我现在在哪里:

data.groupby(['age'])['Score'].mean()

我得到了按年龄分组的平均分

现在我如何比较它的总分平均值并按年龄计算结果组

标签: pythonpandas

解决方案


假设你想要:

  1. 显示组平均值是否高于全局平均值的标志

  2. 每组中高于全局平均值的记录数。

    (
         df.groupby('age')
         .apply(lambda x: [x.Score.mean()>df.Score.mean(), x.Score.gt(df.Score.mean()).sum()])
         .apply(pd.Series)
         .set_axis(['group_mean_above_global_mean', 'num_above_global_mean'], axis=1)
         .reset_index()
    )
    

如果您只想要平均值高于全局平均值的组数,您可以执行以下操作:

(
    df.groupby('age')
    .apply(lambda x: x.Score.mean()>df.Score.mean())
    .sum()
)

推荐阅读