比较 2 个数据帧列,并在一个数据框中添加一个新列作为"Yes"或"No"(如果单元格数据匹配)



我有2个数据帧如下:

df1(main data)
UID    SG
1      A
2      B
3      C
4      D
5      E
df2
UID    AN    SG
1      x      A
3      y      C
2      z      B
1      xy     A
3      v      C

现在,我想向DF1添加一个新列,例如" ISPRESENT"。如果DF2中存在来自DF1的UID,则本列列将具有"是",而如果不在DF2中的UID,则将具有"是"。所以我的DF1终于看起来像这样,

df1
UID    SG    isPresent
1      A      Yes
2      B      Yes
3      C      Yes
4      D      No
5      E      No

我的方法是从两个数据框中进行UID的交叉点,然后在DF1中进行循环以添加细胞。

,但我想在不使用循环的情况下应用方法,并尽可能使用大熊猫。

您可以尝试以下方法:

import pandas as pd
df1 = pd.DataFrame({'UID':[1, 2, 3, 4, 5], 'SG':['A', 'B', 'C', 'D', 'E']})
df2 = pd.DataFrame({'UID':[1, 3, 2, 1, 3], 'AN':['x', 'y', 'z', 'xy', 'v'], 'SG':['A', 'C', 'B', 'A', 'C']})
df1['isPresent'] = df1['UID'].isin(df2['UID'])

另外,请尝试以下操作:

df1['isPresent'] = df1.UID.isin(df2.UID)

输出:

  SG  UID  isPresent
0  A    1       True
1  B    2       True
2  C    3       True
3  D    4      False
4  E    5      False

相关内容

最新更新