[英]Fetch data from another dataframe
我之前問過一個問題,但由於最初的問題被認為是重復的,所以它被關閉了。
但我正在嘗試與該線程以及重復線程不同的東西。
所以請不要關閉這個線程。 謝謝。
我需要根據來自另一個數據幀的數據替換我的列。 必須從其他數據框中搜索相應的“名稱”,並在 df1 中包含“change_name”
數據幀 1:
ID name
1 cat
2 jack
3 snake
4 monkey
數據幀 2:
name change_name
cat meow
jack oooo
snake ssss
monkey
note money
pencil pen
預期輸出:
ID name
1 cat meow
2 jack oooo
3 snake ssss
4 monkey nan
5 note money
6 pencil pen
我必須這樣做:
def map_name(name):
elif name == 'cat':
return 'meow'
elif name == 'jack':
return 'oooo'
elif name == 'snake':
return 'ssss'
elif name == 'monkey ':
return None
else
return name
df1['name'] = df1['name'].apply(map_name)
由於列表很小,我在這里進行了硬編碼,但列表可能會增長。 有人可以告訴如何使用數據框來執行相同的功能嗎? 謝謝。
一個簡單的合並就可以做到。
然后因為你想要df2
中不在df1
連接它們。
pd.concat([df1.merge(df2),df2[~df2['name'].isin(df1['name'])]]
結果:
In [23]: pd.concat([df1.merge(df2),df2[~df2['name'].isin(df1['name'])]])
Out[23]:
ID name change_name
0 1.0 cat meow
1 2.0 jack oooo
2 3.0 snake ssss
3 4.0 monkey None
4 NaN note money
5 NaN pencil pen
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.