Ich habe zwei Datenrahmen mit identischen Spalten. Die zweite Spalte ist eine Teilmenge der Indexwerte der ersten Spalte, enthält jedoch für einige Spalten leere Felder und für andere aktualisierte Informationen.Überprüfen eines Pandas Dataframe für Elemente zum Aktualisieren eines anderen
Beispiel:
DFA:
Height Weight Age Street PhoneNumber
Pete 5.2 130 33 Pine 123-456-7890
Mary 5.0 110 34 Main 434-444-5555
Rob 6.0 230 44 Maple 999-444-2222
....
dfb:
Height Weight Age Street PhoneNumber
Pete Nan 125 Nan Arbor Nan
Rob Nan 235 45 Nan 776-333-3222
ich die Felder in dfa
mit den neuen Informationen in dfb
aktualisieren möchten. Wenn es keine Aktualisierung von dfb
gibt (das Feld ist Nan), möchte ich den ursprünglichen Wert in dfa
beibehalten.
Die einzige Möglichkeit, die ich denken kann, dies zu tun ist durch Zeile und Spalte finden Sie die Elemente in dfb
und legen Sie die entsprechende Adresse in dfa
gleich der Adresse in dfb
iterieren. Hässlich.
Gibt es eine sauberere (und mehr Python) Möglichkeit, dies zu tun?
Vielen Dank im Voraus.
EDIT: Geänderte dfb für Klarheit. Die zwei dfs haben keine identischen Indizes. dfb ist eine Teilmenge von dfa.
Interessant. In der Dokumentation wird angegeben, dass die Werte von a mit b priorisiert werden, um Löcher zu füllen. Ich habe noch nicht getestet, aber es scheint, wenn ich richtig verstehe, dass die Werte von a verwendet werden (auch wenn null), aber ersetzt werden, wenn es einen Nicht-Null-Wert von b gibt, wobei index.a = = index.b. ist das richtig? – Windstorm1981
Der Ausgang stammt von 'dfb'. Sie müssen dann entweder "dfa" neu zuweisen oder dann "dfb" als den fertigen Datenrahmen verwenden. Ich glaube, 'update' ist eine sauberere Lösung. – Alexander
Nur sauberer, wenn Sie Ihre Änderungsverfolgung in Ihrem ursprünglichen Datenrahmen verlieren möchten. Ich denke, es ist sicherer, wenn Sie dem Benutzer die Möglichkeit geben, ein neues dfc neu zuzuordnen oder zu erstellen, daher können sie bei Bedarf zum ursprünglichen Datenrahmen zurückkehren. –