我正在尝试将OHLC数据重新采样到30分钟。市场数据始于9:15,我希望重新采样的时间为9:15-9:45,依此类推。但是我能够将数据重新采样为9:00-9:30
Paste Bin link to 1 min market data
pd.DataFrame(download_data).set_index('date'['close'].resample('30T').ohlc()
As you see in the picture the start time is 9:00 and not 9:15...
答案 0 :(得分:3)
还有另一种方法,可以使用resample
的base
参数:
pd.DataFrame(download_data).set_index('date'['close'].resample('30T', base=15).ohlc()
答案 1 :(得分:1)
解决方案是在resample
中添加参数loffset
:
偏移量:timedelta
调整重新采样的时间标签
df = (pd.DataFrame(download_data)
.set_index('date')['close']
.resample('30T', loffset='15min')
.ohlc())
print (df)
open high low close
date
2018-11-05 09:15:00+05:30 25638.25 25641.85 25589.3 25630.00
2018-11-05 09:45:00+05:30 25622.00 25745.00 25622.0 25714.85
2018-11-05 10:15:00+05:30 25720.05 25740.00 25692.9 25717.00
2018-11-05 10:45:00+05:30 25698.30 25744.75 25667.9 25673.95
2018-11-05 11:15:00+05:30 25680.30 25690.45 25642.9 25655.90
答案 2 :(得分:0)
尽管此处提供的答案符合预期,但必须注意, loffset 和 基本 是deprecated since version 1.1.0。现在最好,最简单的方法是
pd.DataFrame(download_data).set_index('date'['close']).resample('30T', origin='start').ohlc()
这会将开始时间设置为数据框中可用的第一个时间戳。