Heim > Artikel > Backend-Entwicklung > Wie füge ich DataFrames in einer Spalte zusammen und behalte dabei die Informationen aus dem primären DataFrame bei?
Datenrahmen in einer Spalte zusammenführen und gleichzeitig Informationen beibehalten
Beim Arbeiten mit Daten in Python mithilfe von Pandas kommt es häufig vor, dass Datenrahmen basierend auf gemeinsamen Spalten zusammengeführt werden Aufgabe. Manchmal ist es jedoch erforderlich, Informationen aus beiden Datenrahmen beizubehalten, insbesondere wenn sie überlappende, aber unvollständige Daten enthalten. In diesem Artikel wird eine Lösung zum Zusammenführen von Datenrahmen in einer Spalte untersucht und gleichzeitig sichergestellt, dass Informationen aus dem primären Datenrahmen erhalten bleiben.
Problemstellung
Betrachten Sie zwei Datenrahmen, df1 und df2. df1 enthält Informationen über das Alter einer Person, während df2 ihr Geschlecht enthält. Das Ziel besteht darin, df1 und df2 in der Spalte „Name“ zusammenzuführen, aber nur die Informationen von df1 beizubehalten. Einzelpersonen sind möglicherweise nicht immer in beiden Datenrahmen vorhanden.
Lösung
Um dies zu erreichen, können wir die map()-Methode der Serie verwenden, die durch Festlegen des Index von erstellt wird einen Datenrahmen für die Spalte, in der wir zusammenführen möchten. Mit der Methode „map()“ können wir eine Zuordnungsfunktion anwenden, die in diesem Fall eine Suche im anderen Datenrahmen ist.
<code class="python"># Create the dataframes df1 = pd.DataFrame({'Name': ['Tom', 'Sara', 'Eva', 'Jack', 'Laura'], 'Age': [34, 18, 44, 27, 30]}) df2 = pd.DataFrame({'Name': ['Tom', 'Paul', 'Eva', 'Jack', 'Michelle'], 'Sex': ['M', 'M', 'F', 'M', 'F']}) # Set the index of df2 to Name df2.set_index('Name', inplace=True) # Perform the lookup using map df1['Sex'] = df1['Name'].map(df2['Sex']) # Display the merged dataframe print(df1)</code>
Alternative Lösung: Left Join
Alternativ können wir eine Zusammenführung mit einem linken Join verwenden, der sicherstellt, dass alle Zeilen von df1 im zusammengeführten Datenrahmen enthalten sind, auch wenn es in df2 keine entsprechende Zeile gibt.
<code class="python"># Perform the left join df3 = df1.merge(df2, on='Name', how='left') # Display the merged dataframe print(df3)</code>
Hinweis: Wenn die Datenrahmen mehrere Spalten zum Zusammenführen enthalten, verwenden Sie merge(on=['Year', 'Code'], how='left') oder geben Sie die Spalten nach der linken Zusammenführung an (z. B. df1.merge( df2[['Year', 'Code', 'Val']], on=['Year', 'Code'], how='left')).
Umgang mit Duplikaten
Wenn die zum Zusammenführen verwendeten Spalten Duplikate enthalten, ist es wichtig, mit doppelten Werten umzugehen, um Mehrdeutigkeiten zu vermeiden. Dies kann mit drop_duplicates() oder durch die Verwendung eines Wörterbuchs zur Angabe der Zuordnung erfolgen.
Das obige ist der detaillierte Inhalt vonWie füge ich DataFrames in einer Spalte zusammen und behalte dabei die Informationen aus dem primären DataFrame bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!