我有一个数据框'df',其日期时间索引设置为15分钟间隔。间隔是这样的
Index Data
2015-03-15 00:14:59 36.0
2015-03-15 00:29:59 54.9
2015-03-15 00:44:59 28.7
我想通过插值数据,将上述数据以每分钟一分钟的间隔向上采样,如下所示。
Index Data
2015-03-15 00:14:59 36.0
2015-03-15 00:15:59 36.5
2015-03-15 00:16:59 43.3
...... so on
但是,我尝试执行以下操作:
df = df.resample('T').interpolate(method='spline', order=3)
也尝试过:
df = df.resample('60s').interpolate(method='spline', order=3)
但是,以上两种方法都会产生以下结果。他们将微秒设置为00:00:00,而我希望根据以59. 00:14:59结尾的开始时间戳进行设置。
Index Data
2015-03-15 00:14:00 NaN
2015-03-15 00:15:00 NaN
2015-03-15 00:16:00 NaN
...... so on
如何根据最后59微秒的均匀间隔上采样?
答案 0 :(得分:0)
将reindex
与interpolate
一起使用
df.reindex(pd.date_range(df.index.min(),df.index.max(),freq='T')).interpolate()
答案 1 :(得分:0)
来自WeNYoBen的解决方案将在需要索引ID索引列的时间间隔生成valeus。如果不是,则下面的公式将生成这些值。 pd.date_range(df['Index'].iloc[0],df['Index'].iloc[-1],freq='T')
这将提供以下值['2015-03-15 00:14:59', '2015-03-15 00:15:59',
'2015-03-15 00:16:59', '2015-03-15 00:17:59',
'2015-03-15 00:18:59', '2015-03-15 00:19:59',
'2015-03-15 00:20:59', '2015-03-15 00:21:59',
'2015-03-15 00:22:59', '2015-03-15 00:23:59',
'2015-03-15 00:24:59', '2015-03-15 00:25:59',
'2015-03-15 00:26:59', '2015-03-15 00:27:59',
'2015-03-15 00:28:59', '2015-03-15 00:29:59',
'2015-03-15 00:30:59', '2015-03-15 00:31:59',
'2015-03-15 00:32:59', '2015-03-15 00:33:59',
'2015-03-15 00:34:59', '2015-03-15 00:35:59',
'2015-03-15 00:36:59', '2015-03-15 00:37:59',
'2015-03-15 00:38:59', '2015-03-15 00:39:59',
'2015-03-15 00:40:59', '2015-03-15 00:41:59',
'2015-03-15 00:42:59', '2015-03-15 00:43:59',
'2015-03-15 00:44:59']
,但重新索引对我而言不起作用!也许你能弄清楚。
答案 2 :(得分:0)
尝试:
df = df.asfreq('60s').interpolate()