python - 过滤 Pandas 数据框聚合

标签 python pandas

我有一个分组的 pandas 数据框,然后执行聚合计算以获得平均值:

grouped = df.groupby(['year_month', 'company'])
means = grouped.agg({'size':['mean']})

这给了我一个数据框,但我似乎无法将其过滤到我想要的特定公司和 year_month:

means[(means['year_month']=='201412')]

给我一​​个 KeyError

最佳答案

问题是您根据 'year_month''company' 进行分组。因此,在 means DataFrame 中,year_monthcompany 将成为索引 (MutliIndex) 的一部分。您不能像访问其他列那样访问它们。

执行此操作的一种方法是获取索引的 'year_month' 级别的值。示例 -

means.loc[means.index.get_level_values('year_month') == '201412']

演示 -

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

关于python - 过滤 Pandas 数据框聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33404492/

相关文章:

python - pandas.DataFrame.replace 更改列的 dtype

python - pyspark : how to count by group when the data is highly skewed?

python - 误导性的 Python 错误消息

python - Pandas - 使用 str.contains 来匹配字符串

python - numpy/pandas 中不稳定的 NaN 行为

python - 使用PeriodIndex对pandas系列进行切片

python - 如何解压数据框中的日期时间值?

python - 将 PyQt5 与 Tox(Python3.4 和 Python3.5)一起使用

Python:列表迭代仅返回最后一个值

python - 选择具有间隔的行