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

如何为pandas DataFrame的FailureLabel列生成符合规则的unique_id

解决方案

你原来的代码逻辑触发计数+1的条件不符合需求,可通过累加+后向填充的方式实现预期效果:

df['unique_id'] = df['FailureLabel'].cumsum().where(df['FailureLabel'] == 1).bfill().astype(int)

逻辑说明

  • df['FailureLabel'].cumsum()会对所有值为1的行生成递增的累计值,连续0的位置会暂留上一个1的累计值
  • 通过where(df['FailureLabel'] == 1)把所有0的位置转为缺失值
  • 调用bfill()执行后向填充,所有连续0的位置会被紧随其后的第一个1的累计值填充,刚好满足「连续0和后面第一个1共享ID」的规则
  • 最后用astype(int)把浮点数格式的结果转为整数
    运行上述代码得到的结果和你期望的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:36:06