在 Pandas 中获取每个分区的每列平均值 [重复]

Posted

技术标签:

【中文标题】在 Pandas 中获取每个分区的每列平均值 [重复]【英文标题】:Get mean per column per partition in Pandas [duplicate] 【发布时间】:2018-11-20 21:28:19 【问题描述】:

我正在尝试获取 DataFrame 的每个分区的每个列的平均值,例如这个:

  country      city  sales  stock
0      UK    London      1     34
1      UK     Leeds      2     20
2      UK     Leeds      3     21
3      RO      Cluj      4     24
4      RO      Cluj      5     25
5      RO Bucharest      6     25

也就是说,我想得到salesstock 的平均值,并将它们聚合成countrycity 的独特组合。因此,生成的 DataFrame 应该是:

  country      city  sales  stock
0      UK    London      1     34
1      UK     Leeds    2.5   20.5
2      RO      Cluj    4.5   24.5
3      RO Bucharest      6     25

我的国家 - 城市分区的重复行已聚合为一行,具有平均值。

我研究了有关pandas.DataFrame.mean() 的文档和诸如this one 之类的SO 问题和答案,但没有一个能以直截了当的方式帮助我。任何帮助表示赞赏。

【问题讨论】:

试试这个? ***.com/questions/46431243/… 【参考方案1】:

groupby

df.groupby(['country', 'city']).mean()

                   sales  stock
country city                   
RO      Bucharest    6.0   25.0
        Cluj         4.5   24.5
UK      Leeds        2.5   20.5
        London       1.0   34.0

设置索引

df.set_index(['country', 'city']).mean(level=[0, 1])

不设置索引

df.groupby(['country', 'city'], as_index=False, sort=False).mean()


  country       city  sales  stock
0      UK     London    1.0   34.0
1      UK      Leeds    2.5   20.5
2      RO       Cluj    4.5   24.5
3      RO  Bucharest    6.0   25.0

【讨论】:

准确地说,df.groupby(['country', 'city'], as_index=False, sort=False).mean()

以上是关于在 Pandas 中获取每个分区的每列平均值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

机器学习Pandas库练习-获取yahoo金融苹果公司的股票数据

pandas DataFrame中按日期(在索引中)的加权平均分组(每列不同的操作)

Pandas / Numpy - 如何获取和比较每列与每列的计数并写入 csv?

在 pandas 数据框中获取几年内工作日某个小时的平均值

从 netcdf 文件中获取每个月的每小时平均值

R语言使用yardstick包的rmse函数评估回归模型的性能评估回归模型在每个交叉验证(或者重采样)的每一折fold上的RMSE以及整体的均值RMSE(其他指标maemape等计算方式类似)