Wie füge ich Datenrahmen zusammen, um fehlende Werte basierend auf einer passenden Spalte anzuhängen?

Linda Hamilton
Freigeben: 2024-10-29 12:50:29
Original
221 Leute haben es durchsucht

How to merge dataframes to append missing values based on a matching column?

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
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!