我有以下代码只是对一些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,我认为这是正确的方法,但我遇到了麻烦。任何帮助表示赞赏。
答案 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