Heim >Backend-Entwicklung >Python-Tutorial >Wie kombiniere ich Pandas-DataFrames mit überlappenden Spalten?

Wie kombiniere ich Pandas-DataFrames mit überlappenden Spalten?

Linda Hamilton
Linda HamiltonOriginal
2024-10-25 03:23:02987Durchsuche

How to Combine Pandas DataFrames with Overlapping Columns?

So kombinieren Sie Pandas-Datenrahmen basierend auf einer freigegebenen Spalte

Problem:

Beim Versuch, zwei Pandas-Daten zu kombinieren Bei Verwendung der Methode DataFrame.join() ist ein Fehler aufgetreten: „Spalten überlappen.“

Datenrahmen:

  • restaurant_ids_dataframe: Enthält Informationen zum Restaurant IDs, Kategorien, Adressen usw.
  • restaurant_review_frame: Enthält Bewertungsdaten wie Datum, Sterne, Benutzer-IDs usw.

Versuchter Code:

<code class="python">restaurant_review_frame.join(other=restaurant_ids_dataframe, on='business_id', how='left')</code>

Fehler:

<code class="text">Exception: columns overlap: Index([business_id, stars, type], dtype=object)</code>

Lösung:

Um den Fehler zu beheben und die Datenrahmen zu kombinieren, verwenden Sie die merge()-Methode anstelle von join():

<code class="python">import pandas as pd
result = pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer')</code>

Standardmäßig verwendet merge() einen Outer-Join, der alle Zeilen aus beiden Datenrahmen kombiniert. Das on-Argument gibt die Spalte an, die zum Durchführen des Zusammenführungsvorgangs verwendet wird.

Suffixe für überlappende Spalten:

Da beide Datenrahmen eine Spalte mit dem Namen Sterne haben, ist der zusammengeführte Datenrahmen enthält zwei Spalten: stars_x und stars_y. Um diese Suffixe anzupassen, verwenden Sie das Suffix-Argument:

<code class="python">result = pd.merge(..., suffixes=('_restaurant_id', '_restaurant_review'))</code>

Dadurch werden die Sternenspalten im zusammengeführten Datenrahmen in „stars_restaurant_id“ und „stars_restaurant_review“ umbenannt.

Das obige ist der detaillierte Inhalt vonWie kombiniere ich Pandas-DataFrames mit überlappenden Spalten?. 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