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

Python Pandas统计DataFrame的Signal列中连续2的出现次数

实现代码
import pandas as pd

# 构造样例DataFrame,实际使用时替换成你自己的DataFrame即可
data = {'Signal': {0: 2,
  1: 3,
  2: 2,
  3: 2,
  4: 2,
  5: 2,
  6: 2,
  7: 2,
  8: 2,
  9: 3,
  10: 3,
  11: 3,
  12: 3,
  13: 3,
  14: 3,
  15: 3,
  16: 3,
  17: 3,
  18: 3,
  19: 3,
  20: 3,
  21: 3,
  22: 3,
  23: 3,
  24: 2,
  25: 2,
  26: 2,
  27: 2,
  28: 2,
  29: 2,
  30: 2,
  31: 2,
  32: 3,
  33: 3,
  34: 3,
  35: 3,
  36: 3,
  37: 2,
  38: 2,
  39: 3,
  40: 3,
  41: 3,
  42: 3,
  43: 3,
  44: 3,
  45: 3,
  46: 3,
  47: 3,
  48: 3,
  49: 3}}
df = pd.DataFrame(data)

# 核心统计逻辑
mask = df['Signal'] == 2
# 为每一段连续的相同值打分组标签
group_labels = mask.ne(mask.shift()).cumsum()
# 过滤出值为2的段,统计每段长度转为列表
result = mask[mask].groupby(group_labels).count().tolist()

print(result)

运行上述代码输出结果为:[1, 7, 8, 2],和样例数据的实际连续2长度完全匹配。


逻辑说明
  • 第一步通过布尔掩码mask标记出所有Signal值为2的行
  • 第二步mask.ne(mask.shift()).cumsum()会给每一段连续的相同布尔值打上唯一的数字标签,实现连续段的自动分组
  • 第三步过滤出值为2的行,按分组标签统计每组的行数,就得到了每段连续2的长度,转为列表即可得到目标结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:45:05