首页 > 解决方案 > 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().

有任何想法吗?

标签: pythonpandas

解决方案


使用 df.query:

df = df.query("Attr1 != Attr2 != Attr3")

推荐阅读