python - 删除满足列值条件的行
问题描述
我有一个名为的数据框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
解决方案
这很容易。并且有多种使用布尔索引的方法:
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]
推荐阅读
- css - 如何使滚动捕捉在 FF 中以 body 作为滚动容器工作
- c++ - 防止用户输入会导致整数溢出的值
- php - 使用 PHP 自动增加数组值
- c# - dotnet-sonarscanner - 后处理失败 - “找不到或加载主类”
- kubernetes - Istio 服务及其使用
- java - Gradle 有没有办法使用 curl 命令解决依赖关系?
- android - 在签名的调试应用程序中测试订阅时出错
- c# - 在 Windows 机器上的 .net 中使用 C#,有没有办法确定特定应用程序正在使用或打开的 tcp 或 udp 端口?
- reactjs - 将 HTML/CSS/JS Mapbox 文件转换为 React
- react-native - 如何检测 React Native 应用程序中的视图溢出?