如果在右侧数据框中找不到左侧数据框中的值,如何使用合并在 Pandas 中执行 VLOOKUP

所以第一个(和左边的)数据帧是:


Name

Brees

Brady

Rodgers

Mahomes

第二个(也是右边的)数据框是:


Name

Brees

Brady

Wilson

Mahomes

我想回来


Name

Brees

Brady

NaN

Mahomes

我使用了代码pd.merge(df,df1,on="Name",how='left'),但它返回:


Name

Brees

Brady

Rodgers

Mahomes

本质上,返回左数据帧


郎朗坤
浏览 210回答 3
3回答

幕布斯6054654

您可以使用pd.Series.where通过isin以下方式计算的布尔系列:df1['Name'] = df1.where(df1['Name'].isin(df2['Name']))print(df1)#       Name# 0    Brees# 1    Brady# 2      NaN# 3  Mahomes

素胚勾勒不出你

您merge可以添加后工作indicatordf1.mask(df1.merge(df2,how='left',indicator =True)['_merge']=='left_only')Out[8]:       Name0    Brees1    Brady2      NaN3  Mahomes

小怪兽爱吃肉

制作左侧数据框的副本并“划掉”其值不在右侧数据框中的行:df1 = df.copy()df1.loc[~df.isin(df2)["Name"], "Name"] = np.nan#      Name#0    Brees#1    Brady#2      NaN#3  Mahomes
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python