Pandas技巧:把1分钟股票数据转换成60分钟k线数据

首页 > 科技 > 大数据 > 正文 2021-08-29

发表自话题:一分钟k线技巧

本文分享一个小技巧使用Pandas的resample函数和groupby函数来快速转换1分钟数据到60分钟K线数据。

上一篇文章我介绍了如何用pandas的resample函数轻松地把1分钟数据转换成日k和30分钟k线。

因为有现成的函数,所以用起来还是很方便。在文章结尾我提出了一个问题,用resample无法顺利转换成60分钟k线。因为resample只能转换成自然的小时,但是中国的A股自由竞价时间是9:30开始,所以60分钟K线是9:30-10:30, 10:30-11:30, 13:00-14:00, 14:00-15:00这四个小时线组成的。

下图是2021年4月9日的1分钟数据,已经是一个dataframe了。


用resample做出来的效果如下图,把9:30-10:00归类成第一个小时。10:00-11:00归类到第二个小时,这是自然的小时,这就和我们的小时K线完全不一致。



那么如何做出我们所需要的60分钟K线呢?

我想到一个方法,把2个30分钟K线合并起来不就行了吗?

合并的话首先想到的就是groupby方法,但是groupby方法是合并相同的数据,所以需要把每两个30分钟k线设置一个相同的数据,才能用groupby来合并。这就是思路,有了思路,代码就很简单了,代码如下:



转成30分钟我就不介绍了。

后面要判断一下30分钟k线数量是否能够整除2。

接下去我们用构造了一个列表,这个列表看起来是这样[ 0,0,1,1,2,2,3,3....]

目的就是把0,0合并,1,1合并,以此类推。把列表赋给df30后看起来是这样的:



这个方法使用的是pandas的现成的函数,而不是用循环的方式去一条条数据去计算,因此速度还是非常快的。


标签组:[大数据] [pandas] [hdf5

上一篇【一分钟看懂】每天教你一个K线炒股技巧!

下一篇短线操作技巧——15分钟K线战法

相关阅读

相同话题文章

推荐内容

热门阅读