我必须处理部分原始数据和部分提取的数据。我怀疑这两栏是重复的。在SQL中,我可以做类似的事情
SELECT col1, col2 FROM table where col1 != col2
但是如何为pandas.Dataframe
在Python中执行类似上述的操作?更具体地说,如何比较csv文件和/或Dataframe
对象的两列,然后查看匹配或不符合我的比较条件的值或行。
答案 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'])