pandas - 删除 3 个值为 A 的数据框行
问题描述
数据样本:
id col1 col2 col3 col4
1 100 100 100 a
2 200 100 100 b
3 100 300 100 c
应该变成:
id col1 col2 col3 col4
2 200 100 100 b
3 100 300 100 c
试图使用
df = df[(df['col1'] != 100) & (df['col2'] != 100)]
但这删除了几乎所有行,而不是其中所有相同值的行
困难的部分是还有其他列不应该受到影响
解决方案
我们能做的nunique
df[df[['col1','col2','col3']].nunique(1)>1]
然后
~df[['col1','col2','col3']].eq(100).all(axis=1)
推荐阅读
- java - WebClient uri, how to handle special characters like %
- amazon-web-services - Cloudformation中如何访问跨区域资源
- email - 使用 SpamAssassin 配置外发垃圾邮件过滤
- javascript - :focus 不适用于 :hover with styled-component for React.js
- javascript - 在 React 中更新来自遥远孩子的父母状态而不重复我自己?
- django - 有没有一种方法可以在不继承 TemplateView 的情况下通过 extra_context 参数传递上下文?
- google-cloud-datastore - 用于记录应用活动的 Google Cloud Logging VS Datastore
- r - 使用 pROC 和插入符号,使用您选择的随机森林创建 roc 曲线
- json - jq - 循环通过 json 对象并且只显示某些值
- facebook-graph-api - Graph API 错误参数数据必须是数组