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.
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
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
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>
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!