在不同的数据框架中寻找列匹配。

问题描述 投票:2回答:1

比方说,我有两个数据帧,分别是...

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
python dataframe matching
1个回答
2
投票

使用 "史密斯","琼斯","米勒","..."。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
© www.soinside.com 2019 - 2024. All rights reserved.