如果值存在于另一个DataFrame中,则为列设置值

时间:2019-06-25 03:34:38

标签: python pandas

实现以下目标的最有效方法是什么?我有两个DataFrame,并想检查DF1中的值是否存在于DF2中。如果他们这样做,那么我想在DF1中添加另一列对此进行标记。

数据框1:

   col1
0   1
1   2
2   3
3   4
4   5

数据框2:

   col1
0   5
1   6
2   7
3   8
4   9

所需结果:

   col1  Flag
0   5     Duplicate
1   6     Non-duplicate
2   7     Non-duplicate
3   8     Non-duplicate
4   9     Non-duplicate

谢谢。

1 个答案:

答案 0 :(得分:3)

尝试在np.where中以df2.col1为条件的情况下使用df.col1,如果是,则说Duplicate,否则说Non-duplicate

>>> df2['Flag'] = np.where(df2.col1.isin(df.col1), 'Duplicate', 'Non-duplicate')
>>> df2
   col1           Flag
0     5      Duplicate
1     6  Non-duplicate
2     7  Non-duplicate
3     8  Non-duplicate
4     9  Non-duplicate
>>>