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

如何优化计算pandas列连续涨跌次数并填充至对应新列

Pandas高效计算价格连续涨跌次数实现方案

核心特性

  • 完全基于pandas原生向量化运算实现,无自定义遍历逻辑,性能比逐行apply/循环高2个数量级以上,可支撑百万行级大表快速计算
  • 逻辑和示例需求完全匹配,可直接复用

完整实现代码

import pandas as pd

# 构造示例DataFrame,实际使用时替换为你的数据即可
df = pd.DataFrame({'price': [1, 2, 3, 2, 1]})

# 计算连续上涨次数
df['is_increase'] = df['price'].diff() > 0
df['increase_group'] = (~df['is_increase']).cumsum()
df['increase'] = df.groupby('increase_group').cumcount()

# 计算连续下跌次数
df['is_decrease'] = df['price'].diff() < 0
df['decrease_group'] = (~df['is_decrease']).cumsum()
df['decrease'] = df.groupby('decrease_group').cumcount()

# 可选:删除计算过程中的辅助列
df = df.drop(columns=['is_increase', 'increase_group', 'is_decrease', 'decrease_group'])

print(df)

输出结果验证

运行上述代码得到的输出和示例预期完全一致:

price  increase  decrease
0      1         0         0
1      2         1         0
2      3         2         0
3      2         0         1
4      1         0         2

补充说明

如果遇到价格持平的场景,当前逻辑会同时重置上涨和下跌的连续计数。如果有特殊的持平处理规则,只需调整is_increase和is_decrease的判断条件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:15:04