我有兩個資料框 df1 和 df2
df1
id name
ada1 mike
ad23 tom
cev2 tim
df2
id month. sales
ada1. 1/11. 23
ada1. 4/11. 34
ad23. 3/12. 34
cev2. 4/11. 32
我需要 :
id month. sales name
ada1. 1/11. 23. mike
ada1. 4/11. 34. mike
ad23. 3/12. 34. tom
cev2. 4/11. 32. tim
我在左連接或右連接之間感到震驚,我應該使用什么。
uj5u.com熱心網友回復:
使用pd.merge:
>>> df2.merge(df1, on='id', how='left')
id month sales name
0 ada1 1/11 23 mike
1 ada1 4/11 34 mike
2 ad23 3/12 34 tom
3 cev2 4/11 32 tim
uj5u.com熱心網友回復:
使用地圖,因為您正在加入\合并一列并回傳一列。
df2['name'] = df2['id'].map(df1.set_index('id')['name'])
Map 將優于 join\merge。
uj5u.com熱心網友回復:
提供兩種可以根據問題集提供幫助的方法
import pandas as pd
# retain df2 and merge df1 use 'leftjoin'
df2.merge(df1, on='id', how='left')
# Full Join, also known as Full Outer Join, returns all those records which
either have a match in the left or right dataframe
pd.merge(df2,df1,on='id',how='outer',indicator=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/482549.html
