前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas对行情数据的预处理

Pandas对行情数据的预处理

作者头像
用户1075292
发布2018-01-23 15:06:50
1.1K0
发布2018-01-23 15:06:50
举报
文章被收录于专栏:听雨堂听雨堂

库里是过去抓取的行情数据,间隔6秒,每分钟8-10个数据不等,还有开盘前后的一些数据,用Pandas可以更加优雅地进行处理。

image
image

需要把当前时间设置为index

代码语言:javascript
复制
df=df.set_index('time') #设置时间为索引字段

但是还是字符串,需要改为datetime类型:

代码语言:javascript
复制
ii=[datetime.strptime(idx,'%Y-%m-%d %H:%M:%S') for idx in df['time']] #索引列
df['newc']=ii
df=df.set_index('newc')

这样就得到datetime类型的index了,要保留分钟的数据,有两个方法,重新采样或者分组。

重采样:

代码语言:javascript
复制
fz=df.resample('T')
pr=fz['price'].mean()
am=fz['amount'].max()

分组:

代码语言:javascript
复制
df=df.groupby(lambda x:x.minute).mean()

或者直接用字符串进行分组,同时对价格取平均值,对成交量取最大值:

代码语言:javascript
复制
df=df.groupby(lambda x:x[:16])
pr=df['price'].mean()
am=df['amount'].max()

对于分组/采样结果,还可以用ohlc方法,很酷:

image
image

对比起来,用时间索引重采样的方式,可能更加灵活。因为诸如1分钟、5分钟、10分钟、半小时等各种时间节点,可以快速表示无需复杂的代码。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档