Lösung: spalten überschneiden sich, aber es ist kein suffix angegeben
Ein Fehler, der bei der Verwendung von Pandas auftreten kann, ist:
ValueError : columns overlap but no suffix specified: Index(['column'], dtype='object')
Dieser Fehler tritt auf, wenn Sie versuchen, zwei Datenrahmen zu verbinden, die mindestens einen gemeinsamen Spaltennamen haben, und für den linken oder rechten Datenrahmen kein Suffix angegeben ist, um die Spalten im neuen Datenrahmen zu unterscheiden.
Es gibt zwei Möglichkeiten, diesen Fehler zu beheben:
Lösung 1: Geben Sie Suffixnamen an.
df1. join (df2, how = ' left ', lsuffix=' left ', rsuffix=' right ')
Lösung 2: Verwenden Sie stattdessen die Zusammenführungsfunktion.
df1. merge (df2, how = ' left ')
Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.
So reproduzieren Sie den Fehler
Angenommen, wir versuchen, die folgenden zwei Datenrahmen zusammenzusetzen:
import pandas as pd #create first data frame df1 = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F'], ' points ': [5, 7, 7, 9, 12, 9], ' assists ': [11, 8, 10, 6, 6, 5]}) #create second data frame df2 = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F'], ' rebounds ': [4, 4, 6, 9, 13, 16], ' steals ': [2, 2, 1, 4, 3, 2]}) #attempt to perform left join on data frames df1. join (df2, how = ' left ') ValueError : columns overlap but no suffix specified: Index(['player'], dtype='object')
Wir erhalten eine Fehlermeldung, da die beiden Datenrahmen beide die Spalte „Spieler“ gemeinsam nutzen, für den linken oder rechten Datenrahmen jedoch kein Suffix angegeben ist, um die Spalten des neuen Datenrahmens zu unterscheiden.
So beheben Sie den Fehler
Eine Möglichkeit, diesen Fehler zu beheben, besteht darin, einen Suffixnamen für den linken oder rechten Datenrahmen anzugeben:
#perform left join on data frames with suffix provided df1. join (df2, how = ' left ', lsuffix=' left ', rsuffix=' right ') playerleft points assists playerright rebounds steals 0 A 5 11 A 4 2 1 B 7 8 B 4 2 2 C 7 10 C 6 1 3 D 9 6 D 9 4 4 E 12 6 E 13 3 5 F 9 5 F 16 2
Eine andere Möglichkeit, diesen Fehler zu beheben, besteht darin, einfach die Funktion merge() zu verwenden, bei der dieses Problem beim Zusammenfügen zweier Datenrahmen nicht auftritt:
#merge two data frames df1. merge (df2, how = ' left ') player points assists rebounds steals 0 A 5 11 4 2 1 B 7 8 4 2 2 C 7 10 6 1 3 D 9 6 9 4 4 E 12 6 13 3 5 F 9 5 16 2
Beachten Sie, dass die Funktion merge() einfach alle Namen aus dem zweiten Datenrahmen entfernt, die bereits zum ersten Datenrahmen gehören.
Zusätzliche Ressourcen
So führen Sie zwei Pandas DataFrames im Index zusammen
So führen Sie Pandas DataFrames über mehrere Spalten hinweg zusammen
So fügen Sie einem Pandas DataFrame ein Numpy-Array hinzu