Skip to main content
 首页 » 编程设计

Python:如何删除多列具有相等值的行

2025年05月04日11bhlsheji

我想删除多列具有相同值的行。我读了this question大约两列并尝试扩展到多列,但是我得到一个错误。

这是一些示例数据,类似于我的数据框:

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")