Python 如何从最后一行开始对时间序列数据进行反向重采样?
我有几行数据(每秒),我用两个小时对它们进行重采样,对于每个特性,我应用了不同的计算,简言之:Python 如何从最后一行开始对时间序列数据进行反向重采样?,python,pandas,csv,time-series,Python,Pandas,Csv,Time Series,我有几行数据(每秒),我用两个小时对它们进行重采样,对于每个特性,我应用了不同的计算,简言之: data = data.resample('2H').agg({'id':'first','x1': np.sum, 'x2': np.mean}).dropna() 由于每个文件包含一天的记录,因此将产生大约12行,从每天00:00开始 datetime id x1 x2 201
data = data.resample('2H').agg({'id':'first','x1': np.sum,
'x2': np.mean}).dropna()
由于每个文件包含一天的记录,因此将产生大约12行,从每天00:00开始
datetime id x1 x2
2019/05/03 0:00 5603 1324 4600
2019/05/03 2:00 5603 1276 2836
2019/05/03 4:00 5603 184 258
2019/05/03 6:00 5603 546 929
2019/05/03 8:00 5603 2 1
2019/05/03 10:00 5603 6 3
2019/05/03 12:00 5603 8 5
2019/05/03 14:00 5603 835 1798
2019/05/03 16:00 5603 14 7
2019/05/03 18:00 5603 690 1518
2019/05/03 20:00 5603 823 1636
2019/05/03 22:00 5603 972 2547
我的问题是:如何从最后一行向后两小时(或任何时间范围)重新采样?
目前,对于每个CSV文件,最后一行将是我向后重新采样的“起点”,例如:
如果我的最后一行是2019/05/03 09:27:00,那么我需要重新采样2019/05/03 07:27:00到2019/05/03 09:27:00的数据,依此类推
我寻找同样的问题,发现了这个:但无法实现它,以解决我的问题 您可以通过对时间戳应用转换,对转换后的索引重新采样,然后还原转换来完成此操作
end_time = data.index[-1]
data['time to end'] = end_time - data.index
data.set_index('time to end', inplace=True)
data = data.resample('2h').mean() # Or your function
data['datetime'] = end_time - data.index
data.set_index('datetime', inplace=True)
这也快把我逼疯了。我一直觉得重采样应该是我想要的。最终,我通过使用origin参数使其工作
periods = pd.date_range("2020-10-17 15:53:03", "2020-10-17 15:56:56", freq="1s")
ts = pd.Series(range(len(periods)), index=periods)
resampled = ts.resample('60s', origin=ts.index[-1], closed='right', label='right')
这里有一些错误:ValueError:传递值的形状是(1,2),索引暗示(1,0),结束时间显示NaT,知道为什么吗?