Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich DataFrames basierend auf einer Spalte zusammen und behalte dabei die Informationen des ersten DataFrame bei?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 05:17:021015Durchsuche

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>

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>

Ausgabe:

   Name  Age Sex
0   Tom  34   M
1  Sara  18  NaN
2   Eva  44   F
3  Jack  27   M
4 Laura  30  NaN

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>

Beispiel:

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

print(df)</code>

Ausgabe:

   Name  Age Sex
0   Tom  34   M
1  Sara  18  NaN
2   Eva  44   F
3  Jack  27   M
4 Laura  30  NaN

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>

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!

Stellungnahme:
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