滚动窗口聚合组 - KeyError:'找不到列:foo'

时间:2017-09-21 18:10:35

标签: pandas pandas-groupby

原始数据集:

index = pd.MultiIndex.from_product([['AAA','BBB'], pd.DatetimeIndex(['2017-08-17', '2017-08-20', '2017-09-08'])])
df = pd.DataFrame(data=[[1.0], [3.0], [5.0], [7.0], [9.0], [11.0]], index=index, columns=['foo'])

重新索引数据框,以便能够使用居中的滚动窗口(使索引统一)。

df = df.reindex(pd.MultiIndex.from_product([['AAA','BBB'], pd.date_range('2017-08-15', '2017-09-10')]))

df.head(10)

enter image description here

以下代码按预期工作。

df['foo'].groupby(level=0, group_keys=False).rolling(7, min_periods=1, center=True).mean().head(10)

AAA  2017-08-15    1.0
     2017-08-16    1.0
     2017-08-17    2.0
     2017-08-18    2.0
     2017-08-19    2.0
     2017-08-20    2.0
     2017-08-21    3.0
     2017-08-22    3.0
     2017-08-23    3.0
     2017-08-24    NaN
Name: foo, dtype: float64

但如果我尝试使用聚合,则会引发错误。

df['foo'].groupby(level=0, group_keys=False).rolling(7, min_periods=1, center=True).agg(['mean', 'count'])

KeyError: 'Column not found: foo'

Stacktrace:https://pastebin.com/fV24HCQ7

0 个答案:

没有答案