如何使用Python删除数据集指定列含特定值的对应行

原代码错误点
axis参数配置错误:axis=1代表对列执行删除操作,你要删除行需要设置axis=0,pandas默认axis参数值就是0,也可以省略不写。- 参数格式错误:你把布尔判断
df_copy['Grad Intention'] =='Undecided'套了额外的方括号,生成了二维结构,不符合drop方法的入参要求。 - 入参类型不匹配:
drop方法默认接收的是要删除的行索引/列名,直接传入布尔掩码无法匹配到对应的待删除行。
正确实现方法
方法1:布尔索引筛选(最常用,写法简单)
直接筛选出Grad Intention列值不等于Undecided的行,覆盖原副本即可:
df_copy = df_copy[df_copy['Grad Intention'] != 'Undecided']
方法2:使用drop方法实现
如果需要用drop方法完成操作,要先提取出符合删除条件的行的索引,再传入drop方法:
# 写法1:赋值生成新对象 df_copy = df_copy.drop(df_copy[df_copy['Grad Intention'] == 'Undecided'].index) # 写法2:加inplace=True直接修改原副本,不需要重新赋值 df_copy.drop(df_copy[df_copy['Grad Intention'] == 'Undecided'].index, inplace=True)
内容的提问来源于stack exchange,提问作者Nikki
相关产品推荐
相关产品推荐

