在循环中优化切片操作

2024-09-29 23:20:57 发布

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

这是我的数据结构,日期时间是唯一的,并用作一个包含700000行不同日期的熊猫数据帧的索引

| DateTime | Open | High | Low | Close | indicator |

2018-10-23 12:00:00 61.61   61.86   61.6    61.84   0
2018-10-23 12:05:00 61.82   61.98   61.76   61.98   0
2018-10-23 12:10:00 61.98   62.01   61.9    62.01   0
2018-10-23 12:15:00 62.05   62.15   62.01   62.02   0
2018-10-23 12:20:00 62.04   62.13   62.03   62.07   0
2018-10-23 12:25:00 62.08   62.19   62.05   62.19   1
2018-10-23 12:30:00 62.19   62.19   62.11   62.15   0
2018-10-23 12:35:00 62.13   62.24   62.12   62.22   1
2018-10-23 12:40:00 62.23   62.34   62.22   62.29   0
2018-10-23 12:45:00 62.3    62.37   62.21   62.25   0

我想对包含仅符合以下条件的行的数据帧进行切片- 1.行的日期必须与指示符值为1的行相同 2.只有在时间上向前的行应该被切片

代码执行大约需要10-12秒,是否有改进时间的方法

我的Python代码-

# data is a pandas dataframe as above

arr = []
temporarydf = data[data['indicator'] == 1]
for i in range(len(temporaryDF)):
    sliceddata = data[(data['DateTime'] > temporaryDF['DateTime'].iloc[i]) &
                                      (data['DateTime'].dt.date == 
                                       temporaryDF['DateTime'].iloc[i].date())]
    arr.append(sliceddata)

多谢各位


Tags: 数据数据结构datadatetimedate时间切片open

热门问题