【发布时间】:2019-04-13 13:22:15
【问题描述】:
我有一个熊猫数据框,其中包含按分钟计算的外汇数据,长达一年(371635 行):
O H L C
0
2017-01-02 02:00:00 1.05155 1.05197 1.05155 1.05190
2017-01-02 02:01:00 1.05209 1.05209 1.05177 1.05179
2017-01-02 02:02:00 1.05177 1.05198 1.05177 1.05178
2017-01-02 02:03:00 1.05188 1.05200 1.05188 1.05200
2017-01-02 02:04:00 1.05196 1.05204 1.05196 1.05203
我想过滤每日数据以获得小时范围:
dt = datetime(2017,1,1)
df_day = df1[df.index.date == dt.date()]
df_day_t = df_day.between_time('08:30', '09:30')
如果我执行 200 天的 for 循环,则需要几分钟。我怀疑这行的每一步
df_day = df1[df.index.date == dt.date()]
正在寻找数据集中每一行的相等性(即使它是一个有序的数据集)。
有什么办法可以加快过滤速度,或者我应该做一些旧的命令for 从一月到十二月循环...?
【问题讨论】:
标签: python pandas performance datetime pandas-groupby