第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

創(chuàng)建一個(gè)新列取決于兩個(gè)不同數(shù)據(jù)框中的列中的匹配字符串

創(chuàng)建一個(gè)新列取決于兩個(gè)不同數(shù)據(jù)框中的列中的匹配字符串

茅侃侃 2022-07-05 15:41:09
我有兩個(gè)數(shù)據(jù)框 A 和 B,如果名稱存在于數(shù)據(jù)集中,我想在兩個(gè)數(shù)據(jù)框中的名稱列之間進(jìn)行匹配 BI 需要在數(shù)據(jù)集 A 中使用數(shù)據(jù)集 B 的 ID 創(chuàng)建一個(gè)新列(如果不存在)返回 0這是我寫的代碼#data B    email              name        id    hi@amal.com       amal call     6    hi@hotmail.com      amal        6    hi@gmail.com        AMAL boy    6    hi@boy.com          boy         7    hi@hotmail.com      boy         7    hi@call.com     call AMAL       9    hi@hotmail.com      boy         7    hi@dog.com          dog         8    hi@outlook.com      dog         8    hi@gmail.com        dog         8#data A    id  name    1   amal    1   AMAL    2   call    4   dog    3   boy首先我創(chuàng)建包含函數(shù)A.name.str.contains('|'.join(B.name))然后我嘗試創(chuàng)建一個(gè)列A["new"] = np.where(A.name.str.contains('|'.join(B.name))==True, B.id, 0)但我得到這個(gè)錯(cuò)誤ValueError: operands could not be broadcast together with shapes (5,) (10,) ()我所期望的是    id  name  new    1   amal  6    1   AMAL  0    2   call  0    4   dog   7    3   boy   8有什么幫助嗎?
查看完整描述

1 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

由 Series使用Series.map,通過 刪除重復(fù)行DataFrame.drop_duplicates,然后用 替換缺失值Series.fillna并轉(zhuǎn)換為整數(shù):


A["new"] = A.name.map(B.drop_duplicates('name').set_index('name')['id']).fillna(0).astype(int)

print (A)

   id  name  new

0   1  amal    6

1   1  AMAL    0

2   2  call    0

3   4   dog    8

4   3   boy    7


查看完整回答
反對 回復(fù) 2022-07-05
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號