Datenrahmen zusammenführen, um fehlende Werte basierend auf einer übereinstimmenden Spalte anzuhängen
Im gegebenen Szenario besteht das Ziel darin, zwei Datenrahmen, df1 und, zusammenzuführen df2, basierend auf der Spalte „Name“. Die gewünschte Ausgabe besteht jedoch darin, die Informationen von df1 beizubehalten und fehlende Werte von df2 mit NaN zu füllen. Das Ergebnis sollte wie folgt aussehen:
Name Age Sex 0 Tom 34 M 1 Sara 18 NaN 2 Eva 44 F 3 Jack 27 M 4 Laura 30 NaN
Methode 1: Karte nach Serie verwenden, erstellt von set_index
Dieser Ansatz beinhaltet das Erstellen einer Serie aus df2 durch Festlegen der Namensspalte als Index. Verwenden Sie dann die Methode „map()“, um die Geschlechtswerte in df1 abzugleichen und zu füllen.
<code class="python">df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex']) print(df1)</code>
Methode 2: Alternative Lösung mit Zusammenführung mithilfe von Left Join
An Eine alternative Lösung besteht darin, df1 und df2 mithilfe des Left-Join-Ansatzes zusammenzuführen. Dadurch wird sichergestellt, dass alle Zeilen von df1 erhalten bleiben und fehlende Werte von df2 mit NaN gefüllt werden.
<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left') print(df)</code>
Methode 3: Zuordnung durch mehrere Spalten mithilfe von Merge mit Left Join
Wenn mehrere Spalten zum Zusammenführen erforderlich sind (z. B. Name und Jahr, Code), verwenden Sie Zusammenführen mit Linksverknüpfung und geben Sie die gewünschten Spalten an.
<code class="python"># Merge by all columns df = df1.merge(df2, on=['Year', 'Code'], how='left') # Merge by specified columns df = df1.merge(df2[['Year', 'Code', 'Val']], on=['Year', 'Code'], how='left')</code>
Umgang mit Fehlern mit doppelten Schlüsseln
In einigen Fällen können doppelte Namenswerte vorhanden sein, was zu einem Fehler führt. Um dieses Problem zu lösen, sollten Sie erwägen, Duplikate zu entfernen oder eine wörterbuchbasierte Zuordnung zu verwenden, um sicherzustellen, dass der letzte übereinstimmende Wert ausgewählt wird.
<code class="python"># Remove duplicates and create a Series for mapping s = df2.drop_duplicates('Name').set_index('Name')['Val'] df1['New'] = df1['Name'].map(s)</code>
Durch die Verwendung einer dieser Methoden können Sie Datenrahmen effektiv zusammenführen und dabei die Informationen aus dem Primärwert beibehalten Datenrahmen und fehlende Werte mit NaN füllen.
Das obige ist der detaillierte Inhalt vonWie füge ich Datenrahmen zusammen, um fehlende Werte basierend auf einer passenden Spalte anzuhängen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!