gpt4 book ai didi

python-3.x - 如何将 Pandas df 刻度数据重新采样为 5 分钟的 OHLC 数据

转载 作者:行者123 更新时间:2023-12-04 02:04:16 24 4
gpt4 key购买 nike

我有一个带有刻度数据的 Pandas df 'instr_bar' 如下:

time
2016-07-29 16:07:24 5.72
2016-07-29 16:07:24 5.72
2016-07-29 16:07:24 5.72
2016-07-29 16:07:58 5.72
2016-07-29 16:07:58 5.72
2016-07-29 16:09:49 5.70
2016-07-29 16:09:50 5.73
2016-07-29 16:11:14 5.73
2016-07-29 16:11:14 5.73
2016-07-29 16:14:53 5.77
2016-07-29 16:14:53 5.77
2016-07-29 16:17:27 5.75
2016-07-29 16:17:43 5.76
2016-07-29 16:17:43 5.76

我想把它变成 5 分钟的 OHLC。在许多情况下,索引不是唯一的。

然后我使用以下代码: instr_bar = instr_bar.resample('5Min').ohlc()
然后我得到以下df:
                     open   high    low  close
time
2016-07-29 15:40:00 5.74 5.74 5.74 5.74
2016-07-29 15:45:00 NaN NaN NaN NaN
2016-07-29 15:50:00 5.75 5.75 5.75 5.75
2016-07-29 15:55:00 5.75 5.75 5.72 5.72
2016-07-29 16:00:00 5.72 5.72 5.72 5.72
2016-07-29 16:05:00 5.72 5.73 5.70 5.73
2016-07-29 16:10:00 5.73 5.77 5.73 5.77
2016-07-29 16:15:00 5.75 5.76 5.72 5.72
2016-07-29 16:20:00 NaN NaN NaN NaN
2016-07-29 16:25:00 5.72 5.72 5.72 5.72

Q1:如何用最后观察到的值回填 NaN?

Q2: 我现在在交易/开市 (09:00 - 16:30) 之外也有 NaN,我该如何摆脱它们?

最佳答案

试试 bfill() :

instr_bar = instr_bar.resample('5T').ohlc().bfill()

ffill() :
instr_bar = instr_bar.resample('5T').ohlc().ffill()

取决于你想实现什么

如果你想按时间过滤行,你可以使用 between_time()方法:
instr_bar.between_time('09:00', '16:30')

共:
instr_bar = instr_bar.resample('5T').ohlc().ffill().between_time('09:00', '16:30')

关于python-3.x - 如何将 Pandas df 刻度数据重新采样为 5 分钟的 OHLC 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38672880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com