亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果在右側數據框中找不到左側數據框中的值,如何使用合并在 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 關注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號