所以,我对熊猫套餐很陌生。 我在做一些关于etf策略的回溯测试,我需要对Pandas Dataframe做很多查询。在
假设我是这两个数据帧,df和df1,唯一的区别是: df有datetime索引,而df1的时间戳是列和整数索引
In[104]: df.head()
Out[104]:
high low open close volume openInterest
2007-04-24 09:31:00 148.28 148.12 148.23 148.15 2304400 341400
2007-04-24 09:32:00 148.21 148.14 148.14 148.19 2753500 449100
2007-04-24 09:33:00 148.24 148.13 148.18 148.14 2863400 109900
2007-04-24 09:34:00 148.18 148.12 148.13 148.16 3118287 254887
2007-04-24 09:35:00 148.17 148.14 148.16 148.16 3202112 83825
In[105]: df1.head()
Out[105]:
dates high low open close volume openInterest
0 2007-04-24 09:31:00 148.28 148.12 148.23 148.15 2304400 341400
1 2007-04-24 09:32:00 148.21 148.14 148.14 148.19 2753500 449100
2 2007-04-24 09:33:00 148.24 148.13 148.18 148.14 2863400 109900
3 2007-04-24 09:34:00 148.18 148.12 148.13 148.16 3118287 254887
4 2007-04-24 09:35:00 148.17 148.14 148.16 148.16 3202112 83825
所以我测试一下查询速度:
^{pr2}$令我惊讶的是,使用熊猫内置的逻辑实际上是最慢的:
df.loc['2015-11-17']
有人知道为什么吗? 有没有关于查询Pandas数据帧的最有效方法的文档或博客?在
如果我是你,我会用更简单的方法:
在我看来,这将比使用
.loc[]
来进行一次约会更“熊猫逻辑”。我猜它也更快。在在分钟OHLC数据帧上测试:
^{2}$相关问题 更多 >
编程相关推荐