2017-11-11 132 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