如何用大熊猫的分层指数计算均值

时间:2017-06-22 20:34:54

标签: python-3.x pandas

我有一个带有1mi行和分层索引(国家,州,城市,按此顺序)的pandas数据框,其中包含每行产品的价格观察值。如何计算每个国家,州和城市的平均值和标准差(标准差)(请记住,因为我的df很大,我会避免循环)? 对于mean和std的每个级别,我想将值保存在此数据框的新列中以供将来访问。

1 个答案:

答案 0 :(得分:2)

使用groupby参数levels对您的数据进行分组,然后使用meanstd。如果您希望将平均值作为现有数据框中的新列,请使用transform返回与您的df具有相同索引的系列:

grouped = df.groupby(level = ['Country','State', 'City'])
df['Mean'] = grouped['price_observation'].transform('mean')
df['Std'] = grouped['price_observation'].transform('std')

如果您想了解有关分组的更多信息,请阅读pandas documentation