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

如何为DataFrame添加标识E列修改行的列?解决KeyError报错

问题分析与解决

报错原因

你的cond2写法完全错误:'E' == 0是一个直接的布尔判断,结果为False,随后df['E'==0]等同于试图用False作为列名去索引DataFrame,这显然不存在,因此抛出KeyError: False。

修正后的代码

import numpy as np
import pandas as pd

# 先定义目标列集合
cols = ['A', 'B', 'C', 'D']

# 修正条件判断逻辑
cond1 = df.duplicated(subset=cols)  # 标记除首次出现外的重复行
cond2 = df['E'] == 0                # 正确筛选E列等于0的行

# 添加remarks列,注意列名需加引号
df['remarks'] = np.where(cond1 & cond2, True, False)

额外优化说明

  • 如果你需要标记所有重复组内的行(包括首次出现的重复行),可以修改duplicated的keep参数:
    cond1 = df.duplicated(subset=cols, keep=False)
    
  • 若要避免误标记原始数据中E列本来就是0的非重复行,建议保留原始数据副本,通过对比前后E列值判断:
    # 假设原始数据副本为df_original
    df['remarks'] = (df.duplicated(subset=cols, keep=False) & (df['E'] == 0) & (df_original['E'] != 0))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:01:19