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

如何删除每个id下首次events=1前后的行?Excel/Python实现方法

实现方法(Excel & Python)

Excel 实现方法

辅助列筛选法

  • 假设数据中id列在A列,events列在B列,在C1单元格输入公式:
    =COUNTIFS($A$1:A1,A1,$B$1:B1,1)
    
    这个公式会统计当前行及以上范围内,相同id下events=1的累计次数。
  • 下拉填充整个C列,完成辅助列计算。
  • 选中C列,点击「数据」选项卡的「筛选」,只保留C列值为1的行——这些就是每个id下首次出现events=1的目标行。
  • 复制筛选后的行到新工作表,或直接删除其他行即可。

Power Query 高效法

  • 选中数据区域,点击「数据」→「从表格/区域」,将数据导入Power Query编辑器。
  • 点击「转换」选项卡→「分组依据」,设置分组列为id,操作选「所有行」,新列名设为分组数据。
  • 添加自定义列,公式输入:
    =Table.First(Table.SelectRows([分组数据], each [events] = 1))
    
    该公式会提取每组中第一个events=1的行。
  • 点击自定义列右侧的展开按钮,展开所有列,删除多余的分组数据列。
  • 点击「关闭并上载」,将结果导出到Excel表格。

Python(Pandas)实现方法

  • 先导入依赖库并读取数据:
    import pandas as pd
    # 读取Excel文件,替换为你的文件路径
    df = pd.read_excel("data.xlsx")
    
  • 提取每个id下首次出现events=1的行:
    # 筛选所有events=1的行,再按id分组取第一行
    result_df = df[df["events"] == 1].groupby("id").head(1)
    
  • 保存结果到新文件:
    result_df.to_excel("result.xlsx", index=False)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 21:50:33