首页 > 解决方案 > 删除满足列值条件的行

问题描述

我有一个名为的数据框df

   a       b  
0  str1    0
1  str2   .8
2  str3   .4
3  str4   .1

我正在遍历这个数据框。(我知道这不是最有效的方法)。

我想删除所有行b>.7。这是循环迭代,所以我想从同一个数据帧中删除。

附加的语法如下:

new_df = new_df.append(df[df['a']>.7],ignore_index= 'True')

我可以对 drop 做类似的事情吗?

df.drop(df[df['a']>.7])

我得到错误:“ .... not found in axis

预期结果df如下:

   a       b  
0  str1    0
2  str3   .4
3  str4   .1

标签: pythonpandasdataframe

解决方案


这很容易。并且有多种使用布尔索引的方法:

1) 保留 b 小于或等于 7 的行

df = df[df.b<=0.7]

2) .loc 用于相同的条件

df = df.loc[df.b<=0.7]

3)过滤掉大于0.7的行

df=df[~df.b>0.7]

推荐阅读