Festlegen von Datenrahmenwerten mit Vergrößerung

7

Ich habe zwei DataFrames (mit DatetimeIndex ) und möchte das erste Bild (das ältere) mit Daten aus dem zweiten Bild (das neuere) aktualisieren.

Der neue Rahmen kann aktuellere Daten für Reihen enthalten, die bereits in dem alten Rahmen enthalten sind. In diesem Fall sollten Daten im alten Rahmen mit Daten aus dem neuen Rahmen überschrieben werden. Auch der neuere Frame kann mehr Spalten / Zeilen haben als der erste. In diesem Fall sollte der alte Rahmen um die Daten im neuen Rahmen vergrößert werden.

Pandas Dokumente geben an, dass

"Die Operationen .loc/.ix/[] können beim Einstellen eines nicht vorhandenen Schlüssels für diese Achse eine Vergrößerung ausführen"

und

"Ein DataFrame kann auf jeder Achse über .loc "

vergrößert werden

Dies scheint jedoch nicht zu funktionieren und wirft ein KeyError . Beispiel:

%Vor%

Was ist der beste Weg (in Bezug auf die Leistung, wie meine realen Daten sind viel größer) zwei erreichen die gewünschte aktualisierte und erweiterte DataFrame. Das ist das Ergebnis, das ich gerne sehen würde:

%Vor%     
bmu 09.07.2015, 14:05
quelle

3 Antworten

12

df2.combine_first(df1) ( Dokumentation ) scheint Ihrer Anforderung zu dienen; PFB-Code-Schnipsel & amp; Ausgabe

%Vor%

Ausgabe

%Vor%     
Joshua Baboo 11.04.2016, 17:37
quelle
6

Sie können die Funktion combine verwenden.

%Vor%     
Jianxun Li 09.07.2015 14:24
quelle
3

Zusätzlich zur vorherigen Antwort können Sie nach der Neuindizierung

verwenden %Vor%

Also basierend auf Jianxun Lis Code (erweitert mit einer weiteren Spalte) können Sie dies ausprobieren

%Vor%     
herbico 09.04.2016 23:19
quelle

Tags und Links