python - Python:如何删除多列具有相等值的行?
问题描述
我想删除多列具有相同值的行。我读了这个关于两列的问题,并试图扩展到多列,但是我得到了一个错误。
这是一些示例数据,类似于我的数据框:
import pandas as pd
data = [['table1',10,8,7],['table2',3,3,3],['table3',3,8,11],['table4',12,12,12],['table5',13,15,5]]
df = pd.DataFrame(data,columns=['table_name','Attr1','Attr2','Attr3'])
和我想要的结果
res = [['table1',10,8,7],['table3',3,8,11],['table5',13,15,5]]
result = pd.DataFrame(res,columns=['table_name','Attr1','Attr2','Attr3'])
我试过
[df[df['Attr1'] != df['Attr2'] | df['Attr1'] != df['Attr3'] | df['Attr2'] != df['Attr3']]]
检索错误
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
有任何想法吗?
解决方案
使用 df.query:
df = df.query("Attr1 != Attr2 != Attr3")
推荐阅读
- selenium - appium 问题,无法启动两个应用程序
- ios - iOS 12.2 是否支持用于 PWA 的 GPS?
- unit-testing - IntelliJ Idea - 跳转到覆盖代码的测试代码?
- performance - 基于 VICIDial IP 的配置.. 无外拨电话
- javascript - 有没有办法设置 SegmentPoints 和 Handles 的样式?
- php - 如果字段为空,则在以嵌入形式编辑父实体时删除子实体 - Symfony 4
- postgresql - 变体时间序列postgresql
- html - 响应式 div 块
- c# - 无法通过 TCP 连接到另一台计算机
- java - Java 实体 java.sql.SQLException:字段 'id' 没有默认值