如何在Python中基于条件实现累加和的向量化重置?
向量化实现满足条件时重置累加和(用于生成OHLC蜡烛图)
我需要不使用循环的向量化方式,在满足指定条件时重置累加和。
简单示例代码
import pandas as pd import numpy as np np.random.seed(0) v = pd.DataFrame() v['a'] = np.random.randint(10, size=(1000))
重置条件
重置条件为:当前值大于等于起始值+5 或 当前值小于等于起始值-5,即:
((current_value >= opening_value + 5) | (current_value <= opening_value - 5))
初步思路
我将需求拆解为两步:
- 第一步:累加与前值的差值(
v['b'] = v['a'].diff().cumsum()) - 第二步:满足条件时重置累加,但暂未明确具体实现方式
实际场景
该需求用于基于指定tick波动生成OHLC蜡烛图,实际需处理包含147,046,963行的EURUSD tick数据,我采用dask.dataframe分块加载数据,但现有循环代码效率极低且可能存在错误,急需向量化优化。
后续进展
我参考Stack Overflow的方案修改实现了重置逻辑,应用到EURUSD数据后效率大幅提升,但仍需完善开盘/收盘索引及高低值提取步骤。
内容的提问来源于stack exchange,提问作者Arthur Stackoverflow
相关产品推荐
相关产品推荐

