使用日期时间索引或列查询Python Pandas DataFrame

2024-05-08 23:20:13 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我对熊猫套餐很陌生。 我在做一些关于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数据帧的最有效方法的文档或博客?在


Tags: 数据inpandasdfcloseopenouthead
1条回答
网友
1楼 · 发布于 2024-05-08 23:20:13

如果我是你,我会用更简单的方法:

df['2015-11-17']  

在我看来,这将比使用.loc[]来进行一次约会更“熊猫逻辑”。我猜它也更快。在

在分钟OHLC数据帧上测试:

^{2}$

相关问题 更多 >