2017-07-17 2 views
1

Ich habe zwei Datenrahmen:Wie füge ich zwei Datenrahmen mit mehreren Spalten zusammen?

df_1 = pd.DataFrame(columns=["pointid","lat","lon"],data=[[1,41.792145,3.046884],[2,41.799834,3.051082],[3,41.813694,3.063463], [4,41.817673,3.067025]]) 

df_2 = pd.DataFrame(columns=["id","point_from","point_to"], 
           data=[[1,1,2],[2,1,3],[3,2,3]]) 

möchte ich sie verschmelzen, um einen neuen Datenrahmen df_3 mit den folgenden Spalten (Beispiel 1 Zeile) zu erhalten:

id point_from point_to lat_from lon_from lat_to  lon_to 
1  1    2   41.792145 3.046884 41.799834 3.051082 

Wie kann ich dies tun ?

Antwort

1

Eine Option ist df_1 mit df_2 zweimal auf point_from und point_to Spalten jeweils zu fusionieren:

df_1 = df_1.set_index("pointid") 

(df_2.merge(df_1.add_suffix("_from"), left_on="point_from", right_index=True) 
    .merge(df_1.add_suffix("_to"), left_on="point_to", right_index=True)) 

# id point_from point_to lat_from lon_from  lat_to lon_to 
#0 1   1   2 41.792145 3.046884 41.799834 3.051082 
#1 2   1   3 41.792145 3.046884 41.813694 3.063463 
#2 3   2   3 41.799834 3.051082 41.813694 3.063463 
Verwandte Themen