我正在尝试使用从 1 小时增量到 15 分钟的时间序列对数据帧进行重新采样。 .resample()
和 .asfreq()
几乎完全符合我的要求,但我很难填补最后三个间隔。
我可以在最后增加一个小时,重新采样,然后删除最后一个小时,但这感觉很糟糕。
当前代码:
df = pd.DataFrame({'date':pd.date_range('2018-01-01 00:00', '2018-01-01 01:00', freq = '1H'), 'num':5})
df = df.set_index('date').asfreq('15T', method = 'ffill', how = 'end').reset_index()
当前输出:
date num
0 2018-01-01 00:00:00 5
1 2018-01-01 00:15:00 5
2 2018-01-01 00:30:00 5
3 2018-01-01 00:45:00 5
4 2018-01-01 01:00:00 5
期望的输出:
date num
0 2018-01-01 00:00:00 5
1 2018-01-01 00:15:00 5
2 2018-01-01 00:30:00 5
3 2018-01-01 00:45:00 5
4 2018-01-01 01:00:00 5
5 2018-01-01 01:15:00 5
6 2018-01-01 01:30:00 5
7 2018-01-01 01:45:00 5
想法?
最佳答案
不确定 asfreq
但 reindex
工作得很好:
df.set_index('date').reindex(
pd.date_range(
df.date.min(),
df.date.max() + pd.Timedelta('1H'), freq='15T', closed='left'
),
method='ffill'
)
num
2018-01-01 00:00:00 5
2018-01-01 00:15:00 5
2018-01-01 00:30:00 5
2018-01-01 00:45:00 5
2018-01-01 01:00:00 5
2018-01-01 01:15:00 5
2018-01-01 01:30:00 5
2018-01-01 01:45:00 5
关于python - Pandas .resample() 或 .asfreq() 向前填充时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49387205/