我有一个pandas数据帧,我有日期时间(不在索引中,并且首选) . 我想将其重新采样(重新采样)到指定的时间尺度,例如“10S” . 并将字符串数据(即列Acitivty / Action / EPIC等)保存在dataFrame中 .
Ind TIME_STAMP Activity Action Quantity EPIC Price Sub-activity Venue Position
0 2018-08-22 08:01:36 Allocation SELL 100.0 BB. 1.142200 CPTY 300AD -427.0
1 2018-08-22 08:02:17 Allocation BUY 15.0 BB. 1.152300 CPTY ZDDD02 -388.0
2 2018-08-22 08:24:51 Allocation SELL 60.0 BB. 1.165900 CPTY 666 -515.0
3 2018-08-22 09:07:59 NaN NaN NaN NaN 1.167921 NaN -515.0
4 2018-08-22 09:11:00 NaN NaN NaN NaN 1.174500 NaN
我尝试了几种不同的方法,即dataFrame.asfreq(freq = '10S');和dataFrame.resample('10S',on ='TIME_STAMP')
我真正想做的是,1)使用“TIME_STAMP”列将数据上采样到10秒块,保留原始数据2) . 3)之后,能够使用一些填充方法填写数值数据,例如.fillna(method ='pad')
2 回答
想法是由GroupBy.cumcount创建帮助列,由unstack创建唯一的
Datetimeindex
,最后由stack重新形成:这是一种强制通过计算的蛮力方式 . 我通过asfreq和resample生成1秒的时间序列;然后我做了必要的计算;最后重新采样到实际的时间频率 .