我正在使用重采样功能将分钟数据转换为小时数据。问题是我的原始DF只有10:30到15:59的数据,新的重采样数据正在创建新的小时数据。如何删除这些数据,或者让它只对索引上的时间戳进行重新采样,而不创建新的时间戳。
这就是原始DF的外观:
这是重采样DF的外观:
我的问题是:如何从重新采样中获得其他小时的数据,并仅包括原始DF中的前一小时数据?
下面是我用来创建重采样DF的代码
ROD['time'] = pd.to_datetime(ROD['timestamp'])
ROD.set_index('time', inplace = True, drop = True)
resampled = ROD.resample('60Min',origin='start').agg({'open':'first',
'high':'max',
'low': 'min',
'close': 'last', 'volume':'sum'})
下面是打印重采样的输出:
open high low close volume
time
2020-09-28 10:31:00 333.984985 334.470001 332.779999 333.750000 6482408
2020-09-28 11:31:00 333.760010 334.260010 333.109985 333.469910 4456465
2020-09-28 12:31:00 333.475006 334.500000 333.190002 334.239990 3711147
2020-09-28 13:31:00 334.239990 334.820007 334.174988 334.501099 4181924
2020-09-28 14:31:00 334.500000 334.959992 334.079987 334.600006 5698198
... ... ... ... ...
2022-09-23 11:31:00 367.779999 368.170013 365.070007 365.119995 9603892
2022-09-23 12:31:00 365.109985 367.190002 364.825012 365.778412 9306106
2022-09-23 13:31:00 365.769989 366.649994 364.089996 364.829895 9172447
2022-09-23 14:31:00 364.820007 366.480011 363.290008 366.221405 14831712
2022-09-23 15:31:00 366.220001 368.040008 366.000000 367.440002 14253081
2条答案
按热度按时间hmtdttj41#
按时间列筛选是您需要的吗?试试这个;
尽管如此,请考虑使用更好的索引(如时间戳)进行索引。
s4n0splo2#
由于时间段跨越了多天,它导致了一天中的所有小时(每天24小时)。
一种方法是使用between_time过滤时间范围的结果集