You need to enable JavaScript to run this app. 如何统计数据列中特定值组合数?如ID列1下方出现1的次数统计
优惠活动
大模型
产品
解决方案
定价
更多

如何统计数据列中特定值组合数?如ID列1下方出现1的次数统计

相邻同值(1在1下方)的统计方法

核心逻辑:严格保留数据集从上到下的原有行顺序,逐行校验——只要当前行的ID值为1,且紧邻的上一行ID值也为1,就计1次,遍历完成后累加的总数就是目标结果。

你提供的样例实际统计结果

样例中的ID列从上到下依次为:[1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1]
逐对匹配相邻行的符合条件的情况:

  • 第2行ID=1,上一行(第1行)ID=1 → 计1次
  • 第7行ID=1,上一行(第6行)ID=1 → 计1次
  • 第11行ID=1,上一行(第10行)ID=1 → 计1次
    最终累计次数为3次。

常用工具的具体实现

  • Excel/WPS表格
    1. 在ID列旁新增辅助列,从第二行数据(紧邻ID列第一行数据的下一行)开始输入公式:=IF(AND(B2=1,B1=1),1,0)(假设ID值存放在B列)
    2. 将公式批量填充到所有数据行对应的辅助单元格,最后对辅助列做求和,得到的结果就是目标统计值。
  • Python(pandas库)
    先确保数据集没有打乱原有行顺序,直接用移位对比相邻行即可完成统计:
    # 假设数据集加载为df,ID对应的列名为"ID"
    match_result = ((df["ID"] == 1) & (df["ID"].shift(1) == 1)).sum()
    
    输出的match_result即为统计的次数。
  • SQL
    通过窗口函数获取每行的上一行ID值,再做条件计数即可,注意必须按原数据的行顺序排序,避免顺序错乱导致结果错误:
    SELECT SUM(
      CASE 
        WHEN ID = 1 AND LAG(ID, 1) OVER(ORDER BY 原始行号字段) = 1 
        THEN 1 ELSE 0 
      END
    ) AS match_count
    FROM 存储数据集的表名
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 08:27:03