2015-09-09 10 views
5

Ho due frame di dati che vorrei unire. DF1 ha questa formaEspandi e unisci i datasrames Pandas

index c1 c2 
a1 1 2 
a1 2 1 
a1 3 1 
b1 5 2 
b1 4 7 

DF2 è un altro insieme di dati, che condivide una versione condensata dell'indice

index c3 c4 
a1  9 10 
b1  7 8 

vorrei per popolare DF1 con i dati provenienti da DF2

index c1 c2 c3 c4 
a1 1 2 9 10 
a1 2 1 9 10 
a1 3 1 9 10 
b1 5 2 7 8 
b1 4 7 7 8 

Qual è il modo più efficiente per farlo?

risposta

3

si vuole fare un outer merge e impostare left_index=True, right_index=True:

In [65]: 
DF1.merge(DF2, how='outer', left_index=True, right_index=True) 

Out[65]: 
     c1 c2 c3 c4 
index     
a1  1 2 9 10 
a1  2 1 9 10 
a1  3 1 9 10 
b1  5 2 7 8 
b1  4 7 7 8 

esterno join avrebbe funzionato anche:

In [66]: 
DF1.join(DF2, how='outer') 

Out[66]: 
     c1 c2 c3 c4 
index     
a1  1 2 9 10 
a1  2 1 9 10 
a1  3 1 9 10 
b1  5 2 7 8 
b1  4 7 7 8 
+0

Perfetto, grazie – taylormade201