首页 > 解决方案 > Pandas - 在 groupby 语句之后为均值和标准添加列

问题描述

我有以下数据框:

     d = {'City' : ['Paris', 'London', 'NYC', 'Paris', 'NYC'], 'ppl' : [3000,4646,33543,85687568,34545]}
    df = pd.DataFrame(data=d)
    df_mean = df.groupby('City').mean()

现在我想只计算 ppl 列的平均值(和 .std()),我想在我的数据框中包含城市、平均值、标准(当然应该对城市进行分组)。如果这是不可能的,只需将至少 .std() 列的列添加到我的结果数据框中就可以了

标签: pythonpandas

解决方案


您可以使用.GroupBy.agg(),如下所示:

df.groupby('City').agg({'ppl': ['min', 'std']})

如果您不希望该列City成为索引,您可以执行以下操作:

df.groupby('City').agg({'ppl': ['min', 'std']}).reset_index()

或者

df.groupby('City')['ppl'].agg(['mean','std']).reset_index()

结果:

     City      mean           std
0  London      4646           NaN
1     NYC     34044  7.085210e+02
2   Paris  42845284  6.058814e+07

推荐阅读