将索引中的整数时间戳转换为DatetimeIndex:
data.index = pd.to_datetime(data.index, unit='s')
这将整数解释为自纪元以来的秒数。
例如,给定
data = pd.DataFrame(
{'Timestamp':[1313331280, 1313334917, 1313334917, 1313340309, 1313340309],
'Price': [10.4]*3 + [10.5]*2, 'Volume': [0.779, 0.101, 0.316, 0.150, 1.8]})
data = data.set_index(['Timestamp'])
data.index = pd.to_datetime(data.index, unit='s')
产量
Price Volume
2011-08-14 14:14:40 10.4 0.779
2011-08-14 15:15:17 10.4 0.101
2011-08-14 15:15:17 10.4 0.316
2011-08-14 16:45:09 10.5 0.150
2011-08-14 16:45:09 10.5 1.800
然后
ticks = data.ix[:, ['Price', 'Volume']]
bars = ticks.Price.resample('30min').ohlc()
volumes = ticks.Volume.resample('30min').sum()
可以计算:
In [368]: bars
Out[368]:
open high low close
2011-08-14 14:00:00 10.4 10.4 10.4 10.4
2011-08-14 14:30:00 NaN NaN NaN NaN
2011-08-14 15:00:00 10.4 10.4 10.4 10.4
2011-08-14 15:30:00 NaN NaN NaN NaN
2011-08-14 16:00:00 NaN NaN NaN NaN
2011-08-14 16:30:00 10.5 10.5 10.5 10.5
In [369]: volumes
Out[369]:
2011-08-14 14:00:00 0.779
2011-08-14 14:30:00 NaN
2011-08-14 15:00:00 0.417
2011-08-14 15:30:00 NaN
2011-08-14 16:00:00 NaN
2011-08-14 16:30:00 1.950
Freq: 30T, Name: Volume, dtype: float64