我拥有的2个数据集的前5行的示例快照 Emp1数据框:
Name
--------
John
Matt
Anish
Dave
Mike
Emp2数据框:
Name
--------
Sue
Matt
Raj
Dave
Simon
我将两者串联(以防万一,将它们转换为对象)
Con=pd.concat(emp1.astype(str),emp2.astype(str))
Con
Name
-----
John
Matt
Anish
Dave
Mike
Sue
Matt
Raj
Dave
Simon
但是,由于某些原因,python似乎不认为Matt和Dave是重复的
Con.duplicated()
False
False
False
False
False
False
False
False
False
False
我也尝试使用pd.merge进行外部联接,但仍然无法识别重复项。我想将主Emp1与Emp2进行比较,并找出Emp1中哪些名称不在Emp2中。因此,我的逻辑是将两者合并/串联,然后选择不重复的值。数据是从excel读取的。
非常感谢
答案 0 :(得分:2)
可能存在一些尾随空格,因此将其删除:
df1['name'] = df1['name'].str.strip()
df2['name'] = df2['name'].str.strip()
答案 1 :(得分:0)
我重复了您的步骤:
> import pandas as pd
> df1 = pd.DataFrame({"Name": ["John", "Matt", "Anish", "Dave", "Mike"]})
> df2 = pd.DataFrame({"Name": ["Sue", "Matt", "Raj", "Dave", "Simon"]})
> df3 = pd.concat([df1, df2])
> df3.duplicated()
0 False
1 False
2 False
3 False
4 False
0 False
1 True
2 False
3 True
4 False
dtype: bool