2017-11-11 157 views
0

我的第一個數據幀具有不同列,其中的一個包含ID列和我的第二個數據幀具有不同列,其中的一個包含沒有讓我找到了兩者之間的聯繫。不過,我怎麼能聯繫在一起,這些用數字來從數據幀2郵政編碼信息分配到正確的做法在數據幀1我怎麼合併兩個dataframes一起

任何幫助將不勝感激!

日期框1

ID place Items Cost 
0  5  10 2001.00 
1  12  2 20.98 
2  2  4 100.80 
3  7  7 199.60 

數據幀2

ID No  Dr  Postcode 
0  1  Dr.K  BT94 7HX 
1  5  Dr.H  BT7 4MC 
2  3  Dr.Love BT9 1HE 
3  7  Dr.Kerr BT72 4TX 

我想創建一個數據幀1的新列 '郵政編碼' 和郵政編碼分配到正確的實踐

ID Place Items Cost Postcode  
0  5   10 BT7 4MC 
1  2   3 BT9 1HE 
2  22   8 BT62 4TU 
3  7   7 BT72 4TX 

我怎樣才能做到這一點?

+1

哈利,你能不能樣本數據添加到您的問題與預期輸出一起? –

+0

@ScottBoston我已經加入進一步的細節我probkem,有這方面的幫助將是非常美妙 – Harry

回答

1

IIUC,我認爲你所追求的是 'left_on' 什麼,在合併 'right_on' 參數:

df1.merge(df2, left_on='Practice', right_on='Prac No') 

輸出:

ID_x Practice Items Cost ID_y Prac No  Dr Postcode 
0  0   5  10 2001.0  1  5  Dr.H BT7 4MC 
1  3   7  7 199.6  3  7 Dr.Kerr BT72 4TX 

或者另一種方法是使用​​和map

df1['Postcode'] = df1['Practice'].map(df2.set_index('Prac No')['Postcode']) 
df1 

輸出:

ID Practice Items  Cost Postcode 
0 0   5  10 2001.00 BT7 4MC 
1 1  12  2 20.98  NaN 
2 2   2  4 100.80  NaN 
3 3   7  7 199.60 BT72 4TX