【问题标题】:How to check a pandas.Dataframe for duplicate columns?如何检查 pandas.Dataframe 中的重复列?
【发布时间】:2019-03-17 21:53:15
【问题描述】:
我必须处理部分原始、部分提取的数据。我怀疑这两列是重复的。在 SQL 中,我可以做类似的事情
SELECT col1, col2 FROM table where col1 != col2
但是我如何在 Python 中为pandas.Dataframe 执行上述操作?更具体地说,如何比较 csv 文件和/或 Dataframe 对象的两列,然后查看符合或不符合我的比较标准的值或行。
【问题讨论】:
标签:
python
python-3.x
pandas
csv
duplicates
【解决方案1】:
如果您只是想在两列中删除包含相同值的行,您可以对多个条件使用语法df[df.col1 == df.col2] 或df[(df.col1 == df.col2) & (df.col1 == 'some_value') & ...]。
如果您想在所有行之间进行比较,请使用 df.drop_duplicates()
如果您要比较整个列,请使用df['col1'].equals(df['col2'])
【解决方案2】:
对于这个示例数据框:
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