在pandas DataFrame中删除指定行运行报错该如何解决
问题分析与解决方法
报错原因
pandas的DataFrame.drop()方法默认接收的参数是待删除的行索引/列标签,你当前代码传入的是筛选后的子DataFrame对象,参数类型不匹配,因此触发报错。
正确修正代码
提供两种实现方式,都可以达到删除injury_height_metres大于8850的行的效果:
方式1:修正drop方法的传参
把筛选结果的行索引传给drop即可:
members = members.drop(members[(members["injury_height_metres"]>8850)].index)
方式2:直接用布尔索引筛选(更推荐)
不需要调用drop方法,直接取反筛选要保留的行即可,代码逻辑更直观:
# ~ 符号表示对布尔条件取反,即保留不满足「injury_height_metres>8850」的所有行 members = members[~(members["injury_height_metres"] > 8850)]
内容的提问来源于stack exchange,提问作者easy
相关产品推荐
相关产品推荐

