How do you convert 1 minute open-high-low-close data to another timeframe(fx: 5 minute, 1 hour) in Python?(如何将1分钟的开盘-高-低-收盘数据转换为另一个时间范围(FX:5分钟,1小时)?)
本文介绍了如何将1分钟的开盘-高-低-收盘数据转换为另一个时间范围(FX:5分钟,1小时)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我对Python和StackOverflow还很陌生,如果我在这篇文章中犯了错误,请原谅我。
我有一个Pandas DataFrame,它包含1分钟的开盘、高点、低点和收盘数据,以时间为指数,针对一种货币。我将如何将其转换为数据帧,例如,具有5分钟的开盘、高点、低点、收盘数据,并使时间戳也符合?以下是打印出的1分钟数据的示例:
ZARJPY_open ZARJPY_high ZARJPY_low ZARJPY_close
time
201901011700 7.589 7.589 7.589 7.589
201901011701 7.590 7.590 7.590 7.590
201901011702 7.589 7.590 7.589 7.589
201901011703 7.590 7.593 7.590 7.593
201901011705 7.592 7.593 7.592 7.593
我想将其转换为:
ZARJPY_open ZARJPY_high ZARJPY_low ZARJPY_close
time
201901011700 7.589 7.593 7.589 7.593
201901011706 -next 5 minutes-
感谢任何帮助:)
编辑:时间戳采用YYYYMMDDHHMM(年、月、日、时、分)格式
推荐答案
您可以使用5分钟的Grouper对象:
# parse the time.
df.time = pd.to_datetime(df.time, format="%Y%m%d%H%M")
#make the time the index.
df = df.set_index("time")
# group in 5-minute chunks.
t = df.groupby(pd.Grouper(freq='5Min')).agg({"ZARJPY_open": "first",
"ZARJPY_close": "last",
"ZARJPY_low": "min",
"ZARJPY_high": "max"})
t.columns = ["open", "close", "low", "high"]
print(t)
结果为:
open close low high
time
2019-01-01 17:00:00 7.589 7.593 7.589 7.593
2019-01-01 17:05:00 7.592 7.593 7.592 7.593
这篇关于如何将1分钟的开盘-高-低-收盘数据转换为另一个时间范围(FX:5分钟,1小时)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:如何将1分钟的开盘-高-低-收盘数据转换为另一个时间范围(FX:5分钟,1小时)?
基础教程推荐
猜你喜欢
- 对多索引数据帧的列进行排序 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
