Aggregate group by rolling window - KeyError: 'Column not found: foo'

Viewed 1262

Original dataset:

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'])

Reindex dataframe to be abble to use centered rolling window (make index uniform).

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

The following code works as expected.

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

But it raises the error if I try to use aggregation.

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 Answers
Related