2017-07-18 7 views
1

Nach der Zusammenführung von zwei Datenrahmen:Python/Pandas: Wie Zeilen in Datenrahmen verschmelzen

output = pd.merge(df1, df2, on='ID', how='outer') 

Ich habe Datenrahmen wie folgt aus:

index x y z 
    0 2 NaN 3 
    0 NaN 3 3 
    1 2 NaN 4 
    1 NaN 3 4 
... 

Wie Zeilen mit demselben Index fusionieren? Erwartete Ausgabe:

index x y z 
    0 2 3 3 
    1 2 3 4 
+0

Was passiert, wenn sich die Werte in 'z' unterscheiden? Passiert das jemals? – IanS

+0

Sie verschmelzen mit "ID", aber es ist nicht irgendwo in Ihrem Datenrahmen. Es fühlt sich an, als würden uns Daten fehlen. – pshep123

+0

Dies ist ein Beispiel, in dem Code habe ich diese Spalte – bartblons

Antwort

3

Vielleicht könnte man auf sie bedeuten nehmen.

In [418]: output.groupby('index', as_index=False).mean() 
Out[418]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 
1

Wir können Gruppe der Datenrahmen durch die 'index' und dann ... wir können nur die ersten Werte mit .first() oder Minimum erhalten mit .min() etc. auf den Fall natürlich abhängig. Was möchten Sie erhalten, wenn die Werte in z abweichen?

In [28]: gr = df.groupby('index', as_index=False) 

In [29]: gr.first() 
Out[29]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 

In [30]: gr.max() 
Out[30]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 

In [31]: gr.min() 
Out[31]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 

In [32]: gr.mean() 
Out[32]: 
    index x y z 
0  0 2.0 3.0 3 
1  1 2.0 3.0 4 
Verwandte Themen