这是来自Pandas Issue #13966的代码片段
dates = pd.date_range(start='2016-01-01 09:30:00', periods=20, freq='s')
df = pd.DataFrame({'A': [1] * 20 + [2] * 12 + [3] * 8,
'B': np.concatenate((dates, dates)),
'C': np.arange(40)})
失败:
^{pr2}$根据上面链接的问题,这似乎是一个bug。有人有好的解决办法吗?在
首先将
B
设置为索引,以便对其使用Groupby.resample
方法。在Groupby
^{pr2}$A
并根据秒频率重新采样。由于重采样不能直接用于滚动,请使用ffill
(向前fillna
,其中NaN
限制为0)。 现在使用rolling
函数,方法是将窗口大小指定为4(因为freq=4s
)间隔,并在C
列取平均值,如下所示:获得的结果输出:
TL;DR
请在适当设置索引后使用^{} 作为解决方法:
(或)
两者都有用。在
相关问题 更多 >
编程相关推荐