Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich DataFrames in einer Spalte zusammen und behalte dabei die Informationen aus dem primären DataFrame bei?

Wie füge ich DataFrames in einer Spalte zusammen und behalte dabei die Informationen aus dem primären DataFrame bei?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-30 09:42:03660Durchsuche

How to Merge DataFrames on a Column While Preserving Information from the Primary DataFrame?

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!

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