在不同的数据框中查找列匹配

Finding Column Matches in Different Data Frames

假设我有两个数据框-

dic = {'firstname':['John','Jacob','Jim','Matt','David','Susan','Karen',
                    'Linda','Pam','Rachel'],
       'lastname':['Smith','Jones','Miller','White','Johnson','Wilson',
                   'Wilkins','Parker','Cunningham','Ray'],
       'company':['KFC','BK','MCD','KFC','WND','CFA','CHP','TB','INO','TB']}
df = pd.DataFrame(dic)
print(df)

带输出-

  firstname    lastname company
0      John       Smith     KFC
1     Jacob       Jones      BK
2       Jim      Miller     MCD
3      Matt       White     KFC
4     David     Johnson     WND
5     Susan      Wilson     CFA
6     Karen     Wilkins     CHP
7     Linda      Parker      TB
8       Pam  Cunningham     INO
9    Rachel         Ray      TB

dic2 = {'workplace':['BLB','RDB','CFA','STB','DNK','ENP','TB','SHZ','JJ','SUB']}
df2 = pd.DataFrame(dic2)
print(df2)

带输出-

  workplace
0       BLB
1       RDB
2       CFA
3       STB
4       DNK
5       ENP
6        TB
7       SHZ
8        JJ
9       SUB

我的目标是查找 df2 的工作场所列中的任何值是否与 df1 的公司列相匹配。

有什么想法吗?随意以任何方式解决,可能的输出可能只是-

  firstname    lastname company matched
0      John       Smith     KFC   False
1     Jacob       Jones      BK   False
2       Jim      Miller     MCD   False
3      Matt       White     KFC   False
4     David     Johnson     WND   False
5     Susan      Wilson     CFA    True
6     Karen     Wilkins     CHP   False
7     Linda      Parker      TB    True
8       Pam  Cunningham     INO   False
9    Rachel         Ray      TB    True

使用Series.isin.

>>> df['matched'] = df['company'].isin(df2['workplace'])
>>> df
  firstname    lastname company  matched
0      John       Smith     KFC    False
1     Jacob       Jones      BK    False
2       Jim      Miller     MCD    False
3      Matt       White     KFC    False
4     David     Johnson     WND    False
5     Susan      Wilson     CFA     True
6     Karen     Wilkins     CHP    False
7     Linda      Parker      TB     True
8       Pam  Cunningham     INO    False
9    Rachel         Ray      TB     True