2017-11-11 3 views
0

Mein erster Datenrahmen hat verschiedene Spalten, von denen eine ID-Spalte enthält und mein zweiter Datenrahmen hat verschiedene Spalten, von denen eine ein Nein enthält, also habe ich die Verbindung zwischen den beiden gefunden. Wie aber kann ich diese über die Nummer verknüpfen, um die Postleitzahleninformation aus Datenrahmen 2 der korrekten Praxis in Datenrahmen 1 zuzuordnen.Wie kann ich zwei Datenrahmen zusammen verbinden

Jede Hilfe wäre sehr zu schätzen !!!

Datum Rahmen 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 

Datenrahmen 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 

Ich möchte eine neue Spalte 'Postleitzahl' in Datenrahmen 1 und weisen Sie die Postleitzahl in die richtige Praxis erstellen

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 

Wie kann ich das tun ??

+1

Harry, können Sie Beispieldaten zu Ihrer Frage zusammen mit einer erwarteten Ausgabe hinzufügen? –

+0

@ScottBoston Ich habe weitere Details zu meinem Problem hinzugefügt, jede Hilfe dazu wäre fantastisch – Harry

Antwort

1

IIUC, ich glaube, was Sie suchen ist 'left_on' und 'right_on' Parameter in merge:

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

Ausgang:

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 

Oder eine andere Art und Weise ist set_index und map zu verwenden :

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

Ausgang:

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 
Verwandte Themen