如何检查pandas.Dataframe中是否有重复的列?

时间:2018-10-12 16:12:23

标签: python python-3.x pandas csv duplicates

我必须处理部分原始数据和部分提取的数据。我怀疑这两栏是重复的。在SQL中,我可以做类似的事情

SELECT col1, col2 FROM table where col1 != col2

但是如何为pandas.Dataframe在Python中执行类似上述的操作?更具体地说,如何比较csv文件和/或Dataframe对象的两列,然后查看匹配或不符合我的比较条件的值或行。

2 个答案:

答案 0 :(得分:1)

对于此示例数据框:

   Val1  Val2  Val3
0     1     2     3
1     1     1     3
2     3     2     1
3     2     2     2
4     1     2     3
5     2     2     2
6     1     1     3

您可以找到Val1列值等于Val2列值的行:

df[df['Val1']==df['Val2']]

收益:

   Val1  Val2  Val3
1     1     1     3
3     2     2     2
5     2     2     2
6     1     1     3

或者如果您想要!=

df[df['Val1']!=df['Val2']]

收益:

   Val1  Val2  Val3
0     1     2     3
2     3     2     1
4     1     2     3

答案 1 :(得分:1)

如果您只想删除两列中包含相同值的行,则可以对多种条件使用语法df[df.col1 == df.col2]df[(df.col1 == df.col2) & (df.col1 == 'some_value') & ...]

如果要比较所有行,请使用df.drop_duplicates()

如果您要比较整个列,请使用df['col1'].equals(df['col2'])