【发布时间】:2018-01-09 12:41:23
【问题描述】:
当按日期分组时,我已经成功地使用转换添加了一个新的总体积列,如下所示:
df
Name Date Volume
--------------------------
APL 12-01-2017 1102
BSC 12-01-2017 4500
CDF 12-02-2017 5455
df['vol_all_daily'] = df['Volume'].groupby([df['Date']]).transform('sum')
Name Date Volume vol_all_daily
------------------------------------------
APL 12-01-2017 1102 5602
BSC 12-01-2017 4500 5602
CDF 12-02-2017 5455 5455
但是,当我想取滚动平均值时,它不起作用!
df['vol_all_ma_2']=df['vol_all_daily'].
groupby([df['Date']]).rolling(window=2).mean()
返回一个 DataGroupBy ,它给出错误 * 并且变得太难放回 df 列。
df['vol_all_ma_2'] =
df['vol_all_daily'].groupby([df['Date']]).transform('mean').
rolling(window=2).mean()
这只会产生与 vol_all_daily 列几乎相同的结果
更新:
我没有在每个日期只取一列..上面的代码仍然需要多个日期...相反,我将 .first() 添加到 groupby..不确定为什么 groupby 没有每个日期取一行.
【问题讨论】:
-
请注意上面代码中的错误,其中您引用了未定义的
res(也未定义df)。请参阅minimal example。 -
已修复...谢谢