2016-04-21 13 views
0

Ich habe zwei Datenrahmen. Ich muss ihnen beitreten, damit jene Indexe, die denselben Namen in beiden Datenrahmen haben, zu einem zusammengefügt werden und ihre Werte summiert werden. Jene Indizes, die nicht im anderen Datenrahmen existieren, werden erzeugt und ihre Werte werden eingefügt. Siehe Beispiel unten.Verschmelzung von zwei Datenrahmen mit dem gleichen Index in Pandas

dataFrame1:

index col1 col2 col3 
A   3 0 4 
C   4 1 2 
D   3 5 6 
G   3 0 0 

dataFrame2

index col1 col2 col3 
A   1 1 3 
B   4 4 1 
C   1 3 0 
E   0 2 1 
F   1 3 2 

ich folgende Ergebnisse müssen:

index col1 col2 col3 
A   4 1 7 
B   4 4 1 
C   5 4 2 
D   3 5 6 
E   0 2 1 
F   1 3 2 
G   3 0 0 

wie kann ich das tun, ist Pandas? Hinweis: kein Wert sollte als Null behandelt werden, es sei denn, es ist Null oder NaN in beiden Datenrahmen.

+0

Mögliche Duplikat [Hinzufügen von zwei Pandas Datenrahmen] (http://stackoverflow.com/questions/11106823/adding-two -Pandas-Datenrahmen) –

Antwort

2

Ich glaube, Sie add mit combine_first und Gießen zu int von astype verwenden können:

print df1 
     col1 col2 col3 
index     
A   3  0  4 
C   4  1  2 
D   3  5  6 
G   3  0  0 

print df2 
     col1 col2 col3 
index     
A   1  1  3 
B   4  4  1 
C   1  3  0 
E   0  2  1 
F   1  3  2 

print df1.add(df2).combine_first(df1).combine_first(df2).astype(int) 
     col1 col2 col3 
index     
A   4  1  7 
B   4  4  1 
C   5  4  2 
D   3  5  6 
E   0  2  1 
F   1  3  2 
G   3  0  0 
Verwandte Themen