Heim >Backend-Entwicklung >Python-Tutorial >Wie kombiniere ich Pandas-DataFrames mit überlappenden Spalten?
Problem:
Beim Versuch, zwei Pandas-Daten zu kombinieren Bei Verwendung der Methode DataFrame.join() ist ein Fehler aufgetreten: „Spalten überlappen.“
Datenrahmen:
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!