Pandas中含索引子句时errors='ignore'的正确使用方法
DataFrame批量删除指定型号行的报错解决
你的报错根源不在drop的errors='ignore'参数,而是筛选索引的代码语法错误——你用逗号拼接多个==条件的写法完全不符合Pandas语法,这才导致了"invalid key"错误,而且这个错误发生在drop执行之前,和errors='ignore'无关。
正确实现方式
1. 批量筛选待删除行的索引
要删除112个指定型号的行,直接用isin()方法批量匹配,即使部分型号不存在也不会报错:
# 把所有要删除的型号存入列表 exclude_parts = ['KSA-9132', 'KCB-0100T', ...] # 补全剩余110个型号 # 筛选出符合删除条件的行索引 index_to_drop = df[df['Part Number'].isin(exclude_parts)].index
2. 执行删除操作
此时再调用drop,errors='ignore'会正常生效:如果索引为空(比如某个型号不存在),或者有无效索引,都会直接跳过,不会抛出错误:
df.drop(index=index_to_drop, errors='ignore', axis=0, inplace=True)
反向场景:保留指定型号,删除其余行
如果你的需求是保留特定型号、删除其他所有行,只需用~取反筛选条件:
keep_parts = ['需要保留的型号1', '型号2', ...] index_to_drop = df[~df['Part Number'].isin(keep_parts)].index df.drop(index=index_to_drop, errors='ignore', axis=0, inplace=True)
内容的提问来源于stack exchange,提问作者Anima_et_Animus
相关产品推荐
相关产品推荐

