如何将1分钟的开盘-高-低-收盘数据转换为另一个时间范围(FX:5分钟,1小时)?

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小时)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)