我有一个看起来像这样的df;
col1 col2
aa aa
cc bb
dd dd
如何比较同一df中的两个列,但删除重复项并在各自的列中保持唯一性?
新df:
col1 col2
cc bb
答案 0 :(得分:2)
我们可以构造一个过滤器来检查df.col1
的值是否与df.col2
不同,然后进行过滤,例如:
df[df.col1 != df.col2]
例如:
>>> df = pd.DataFrame([['aa', 'aa'], ['cc', 'bb'], ['dd', 'dd']], columns=['col1', 'col2'])
>>> df
col1 col2
0 aa aa
1 cc bb
2 dd dd
>>> df[df.col1 != df.col2]
col1 col2
1 cc bb
我们在这里构造一个 new 数据框,但是我们可以将df
设置为新数据框,例如:
df = df[df.col1 != df.col2]
答案 1 :(得分:2)
这应该可以解决问题:
df[df[col1] != df[col2]]
答案 2 :(得分:0)
如果您只想提取各列中具有相同值的行,则应该这样做。
import pandas as pd
data = {'a':[40, 30, 10],
'b':[40, 20, 10]}
df = pd.DataFrame(data)
df = df[~(df['a']==df['b'])]
输出
>>> df
a b
0 10 40
2 30 10