我有一个 pandas 数据框,我对其进行分组,然后执行聚合计算以获得平均值:
grouped = df.groupby(['year_month', 'company'])
means = grouped.agg({'size':['mean']})
这给了我一个数据框,但我似乎无法将其过滤到我想要的特定公司和year_month:
means[(means['year_month']=='201412')]
给了我一个 KeyError
问题是您的分组基于'year_month'
and 'company'
。因此在means
数据框,year_month
and company
将成为索引 (MutliIndex) 的一部分。您无法像访问其他列那样访问它们。
一种方法是获取级别的值'year_month'
的索引 .例子 -
means.loc[means.index.get_level_values('year_month') == '201412']
Demo -
In [38]: df
Out[38]:
A B C
0 1 2 10
1 3 4 11
2 5 6 12
3 1 7 13
4 2 8 14
5 1 9 15
In [39]: means = df.groupby(['A','B']).mean()
In [40]: means
Out[40]:
C
A B
1 2 10
7 13
9 15
2 8 14
3 4 11
5 6 12
In [41]: means.loc[means.index.get_level_values('A') == 1]
Out[41]:
C
A B
1 2 10
7 13
9 15
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)