You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历Pandas DataFrame,循环后计算candle变量总和

解决方案

方法1:改进你的循环代码

你原来的代码只是逐行给candle赋值,但没做累计计数。只需加个计数器变量,就能实现统计:

total_candles = 0  # 初始化计数器
for index, row in df.iterrows():
    openPrice = row['open']
    closePrice = row['close']
    
    # 原逻辑中,收盘价>=开盘价时candle为0,其余情况为1
    if closePrice - openPrice >= 0:
        candle = 0
    else:
        candle = 1
        total_candles += 1  # 每次candle为1时累加计数

print(total_candles)  # 输出最终总和

方法2:用Pandas向量化操作(更高效)

不用逐行循环,直接利用Pandas的向量运算,这比iterrows快得多,尤其适合处理大体积的DataFrame:

# 直接判断收盘价是否小于开盘价,布尔值序列求和(True等价于1,False等价于0)
total_candles = (df['close'] < df['open']).sum()
print(total_candles)

逻辑匹配说明

你的原代码中,当收盘价等于开盘价时会进入第一个分支,设candle=0,上面的向量化代码正好对应这个逻辑——仅统计收盘价严格小于开盘价的次数。如果想把收盘价等于开盘价的情况也计入candle=1,只需修改条件:

total_candles = (df['close'] <= df['open']).sum()

内容的提问来源于stack exchange,提问作者Bronson77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:15:18