无法在不规则的15分钟时间戳00:14:59-00:29:59中对熊猫进行重新采样

时间:2019-05-09 03:33:42

标签: python pandas indexing time-series resampling

我有一个数据框'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微秒的均匀间隔上采样?

3 个答案:

答案 0 :(得分:0)

reindexinterpolate一起使用

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()