熊猫:在多级索引中查找平均值

时间:2017-04-04 18:26:06

标签: pandas

我有以下代码只是对一些ag数据进行多索引:

df_corn_mean = df_corn.set_index(['Year','Value'])
df_corn_mean

结果如下:

                County        Commodity
Year    Value       
2016    171.2   BARTHOLOMEW   CORN
        180.1   BOONE         CORN
        190.6   CLINTON       CORN
        178.9   DECATUR       CORN
        179.5   HAMILTON      CORN

还有几年。我想要每年价值的平均值。我曾尝试过groupby,我认为这是正确的方法,但我遇到了麻烦。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

您将'Value'放入索引中。没什么大不了的,只需通过groupby增加获得平均值所需的步骤数。

我回去做一步

df_corn.groupby('Year').Value.mean()

Year
2016    180.06
Name: Value, dtype: float64

如果符合您的目的,您还可以执行以下操作

df_corn_mean = df_corn.set_index(['Year', 'Value'], drop=False)

drop=False将您设置的列作为索引保留在数据框中。这意味着您仍然可以轻松抓取它们进行groupby计算

现在:

df_corn_mean.groupby(level='Year').Value.mean()

答案 1 :(得分:1)

根据您的需要,您可能希望减少数据(请参阅@piRSquared solution):

In [48]: df_corn.groupby('Year')['Value'].transform('mean')
Out[48]:
0    180.06
1    180.06
2    180.06
3    180.06
4    180.06
Name: Value, dtype: float64