为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

郎朗坤 2021-10-10 13:48:17
所以第一个(和左边的)数据帧是:NameBreesBradyRodgersMahomes第二个(也是右边的)数据框是:NameBreesBradyWilsonMahomes我想回来NameBreesBradyNaNMahomes我使用了代码pd.merge(df,df1,on="Name",how='left'),但它返回:NameBreesBradyRodgersMahomes本质上,返回左数据帧
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您可以使用pd.Series.where通过isin以下方式计算的布尔系列:


df1['Name'] = df1.where(df1['Name'].isin(df2['Name']))


print(df1)

#       Name

# 0    Brees

# 1    Brady

# 2      NaN

# 3  Mahomes


查看完整回答
反对 回复 2021-10-10
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您merge可以添加后工作indicator


df1.mask(df1.merge(df2,how='left',indicator =True)['_merge']=='left_only')

Out[8]: 

      Name

0    Brees

1    Brady

2      NaN

3  Mahomes


查看完整回答
反对 回复 2021-10-10
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

制作左侧数据框的副本并“划掉”其值不在右侧数据框中的行:


df1 = df.copy()

df1.loc[~df.isin(df2)["Name"], "Name"] = np.nan

#      Name

#0    Brees

#1    Brady

#2      NaN

#3  Mahomes


查看完整回答
反对 回复 2021-10-10
  • 3 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号