使用Pandas检查指定列重复记录时触发KeyError的问题
DataFrame检查A、B列重复记录的KeyError解决方法
错误根源
触发KeyError: Index(['['A','B']'], dtype='object')的核心原因:
- 第三种写法
subset=[column_list]属于冗余嵌套,把列名列表又套了一层列表,导致pandas将['A','B']识别为单个列名,自然匹配不到现有列。 - 若前两种写法也报错,大概率是实际代码中
column_list被错误定义为字符串类型(比如column_list="['A','B']"),而非列名组成的列表。
正确实现代码
确保column_list是列名字符串的列表,使用以下两种写法之一即可:
column_list=['A','B'] # 写法1:直接传入列名列表 output_df = df[df.duplicated(column_list)] # 写法2:显式指定subset参数(更清晰) output_df = df[df.duplicated(subset=column_list)]
扩展用法
如果需要标记所有重复行(包括第一次出现的记录),添加keep=False参数:
output_df = df[df.duplicated(subset=column_list, keep=False)]
验证小技巧
可先确认column_list的类型是否正确:
print(type(column_list)) # 正常输出应为 <class 'list'>
内容的提问来源于stack exchange,提问作者Dozel
相关产品推荐
相关产品推荐

