Wie füge ich DataFrames basierend auf einer Spalte zusammen und behalte dabei die Informationen des ersten DataFrame bei?

Mary-Kate Olsen
Freigeben: 2024-10-31 05:17:02
Original
916 Leute haben es durchsucht

How to Merge DataFrames Based on a Column, Preserving the First DataFrame's Information?

So führen Sie Datenrahmen basierend auf einer Spalte zusammen, wobei die Informationen des ersten Datenrahmens erhalten bleiben

Bei zwei Datenrahmen mit überlappenden, aber nicht identischen Zeilen können Sie diese basierend auf einer bestimmten zusammenführen Spalte, um Informationen von einer zur anderen hinzuzufügen. In diesem Fall möchten Sie zwei Datenrahmen, df1 und df2, zusammenführen, wobei df1 Informationen zum Alter und df2 Informationen zum Geschlecht enthält. So geht's, während die Informationen aus dem ersten Datenrahmen erhalten bleiben.

Lösung

Um die Datenrahmen zusammenzuführen und die Informationen des ersten Datenrahmens beizubehalten, verwenden Sie die Kartenfunktion zusammen mit einer von set_index erstellten Serie:

<code class="python">df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])</code>
Nach dem Login kopieren

Zum Beispiel:

<code class="python">df1 = pd.DataFrame({'Name': ['Tom', 'Sara', 'Eva', 'Jack', 'Laura'], 
                     'Age': [34, 18, 44, 27, 30], 
                     'Sex': None})

df2 = pd.DataFrame({'Name': ['Tom', 'Paul', 'Eva', 'Jack', 'Michelle'], 
                     'Sex': ['M', 'M', 'F', 'M', 'F']})

df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])

print(df1)</code>
Nach dem Login kopieren

Ausgabe:

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

Alternative Lösung

Eine andere Möglichkeit, das gleiche Ergebnis zu erzielen, ist die Zusammenführung die Datenrahmen mit einem linken Join:

<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left')</code>
Nach dem Login kopieren

Beispiel:

<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left')

print(df)</code>
Nach dem Login kopieren

Ausgabe:

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

Umgang mit mehreren Join-Spalten

Wenn Sie Wenn Sie mehrere Spalten zusammenführen müssen, verwenden Sie den gleichen Left-Join-Ansatz mit den angegebenen zusätzlichen Join-Spalten:

<code class="python">df = df1.merge(df2[['Name', 'Sex', 'Year', 'Code']], on=['Year', 'Code'], how='left')</code>
Nach dem Login kopieren

Fehlerbehandlung: Doppelte Join-Spalten

Wenn aufgrund eines doppelten Joins ein Fehler auftritt Spalten, behandeln Sie es, indem Sie Duplikate entfernen oder ein Wörterbuch für die Zuordnung verwenden.

Das obige ist der detaillierte Inhalt vonWie füge ich DataFrames basierend auf einer Spalte zusammen und behalte dabei die Informationen des ersten DataFrame bei?. 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!