2017-07-13 2 views
1

Ich habe zwei Datenrahmen, df_original und df_update, beide mit Multiindex.Wie vereinheitliche ich zwei Datenrahmen?

Ich möchte df_original mit den Werten von df_update aktualisieren, bei denen Schlüssel übereinstimmen, und fügen Sie keine neuen Daten von df_update zu df_original.

Wie mache ich das?

(Ich habe versucht df.update und df.merge aber kann nicht scheinen, eine saubere Lösung zu finden).

+0

könnten wir einige Proben müssen und die erwartete Ausgabe zu in der Lage zu sehen, was Sie versuchen zu tun. –

+1

Schwer zu beantworten ohne Beispieldatensätze, aber es sieht so aus, als ob Sie 'df_original.combine_first (df_update)' beschreiben. – ayhan

+1

@ayhan combinate_first war die Antwort! Wenn Sie es als richtige Antwort einreichen, werde ich es als korrekt markieren! Vielen Dank! – cjm2671

Antwort

1

Ihre Beschreibung mit der Beschreibung der combine_first Methode passt funktionieren würde:

Kombinieren Sie zwei Datenrahmen Objekte und standardmäßig auf Nicht-Null-Werte in Rahmen Aufruf der Methode . Ergebnis Indexspalten wird die Vereinigung der jeweiligen Indizes und Spalten

Parameter: andere: Dataframe

Returns: kombiniert: Datenrahmen

idx = pd.MultiIndex.from_tuples([('a', 'x'), ('a', 'y'), ('b', 'x')]) 
df1 = pd.DataFrame([1, 2, 3], index=idx) 

df1 
Out: 
    0 
a x 1 
    y 2 
b x 3 


idx = pd.MultiIndex.from_tuples([('a', 'y'), ('b', 'x'), ('b', 'y')]) 
df2 = pd.DataFrame([4, 5, 6], index=idx) 

df2 
Out: 
    0 
a y 4 
b x 5 
    y 6 

df1.combine_first(df2) 
Out: 
     0 
a x 1.0 
    y 2.0 
b x 3.0 
    y 6.0 
0
print(df_original.merge(df_update,how="outer")) 

Ich denke, das

Verwandte Themen