如何在Pandas中删除Height列值小于1的浮点类型行?
解决Pandas删除Height小于1行的问题
原代码的两个错误
- 条件判断错误:你要删除的是
Height < 1的行,但写了df['Height'] < 0.0,D行的Height是0.6,根本不满足这个条件,所以没被选中删除。 - 布尔值大小写错误:Python里的布尔值是
True(首字母大写),你写的true会被识别为未定义变量,导致代码报错或者inplace参数不生效。
正确实现方法
方法1:修正你的drop代码
把条件改成<1,同时把true改成True:
dec = df[df['Height'] < 1].index df.drop(dec, inplace=True) print(df)
方法2:直接用布尔索引筛选(更简洁高效)
Pandas里直接筛选符合条件的行重新赋值给df,是更常用的方式:
df = df[df['Height'] >= 1] print(df)
或者用query方法,可读性更好:
df = df.query('Height >= 1') print(df)
执行后都会得到不含D行的结果:
| Name | Age | Height |
|---|---|---|
| A | 2 | 5.7 |
| B | 4 | 5.4 |
| C | 8 | 5.9 |
内容的提问来源于stack exchange,提问作者user20030574
相关产品推荐
相关产品推荐

