我想以按列分组的频率使用前向填充ffill
和后向填充对数据列进行重新采样。bfill
1min
df
id
df
:
id timestamp data
1 1 2017-01-02 13:14:53.040 10.0
2 1 2017-01-02 16:04:43.240 11.0
...
4 2 2017-01-02 15:22:06.540 1.0
5 2 2017-01-03 13:55:34.240 2.0
...
我用了:
pd.DataFrame(df.set_index('timestamp').groupby('id', sort=True)['data'].resample('1min').ffill().bfill())
如何通过从现在起过去 10 天的窗口内重新采样来添加附加条件?所以最后一次timestamp
读数是现在,第一次timestamp
读数是datetime.datetime.now() - pd.to_timedelta("10day")。目标是为每组提供相同数量的读数id
。
更新:
试过:
start = datetime.datetime.now() - pd.to_timedelta("10day")
end = datetime.datetime.now()
r = pd.to_datetime(pd.date_range(start=start, end=end, freq='1h'))
pd.DataFrame(df.reset_index().set_index('timestamp').groupby('id', sort=True).reindex(r)['data'].resample('1h').ffill().bfill())
并返回:
AttributeError: 'DataFrameGroupBy' object has no attribute 'reindex'
所以我不应该申请reindex
对象groupby
,有没有办法可以解决它?