So beheben sie: valueerror: eine zeile mit nicht übereinstimmenden spalten kann nicht definiert werden


Ein Fehler, der bei der Verwendung von Pandas auftreten kann, ist:

 ValueError : cannot set a row with mismatched columns

Dieser Fehler tritt auf, wenn Sie versuchen, einem Pandas-DataFrame eine neue Zeile hinzuzufügen, die Anzahl der Werte in der neuen Zeile jedoch nicht mit der Anzahl der Spalten im vorhandenen DataFrame übereinstimmt.

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir erstellen den folgenden Pandas-DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28, 22],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4, 8],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12, 9]})

#view DataFrame
df

	team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12
8 I 22 8 9

Nehmen wir nun an, wir versuchen, am Ende des DataFrame eine neue Zeile hinzuzufügen:

 #define new row to append
new_team = ['I', 30]

#append row to DataFrame
df. loc [ len (df)] = new_team

#view updated DataFrame
df

ValueError : cannot set a row with mismatched columns

Wir erhalten einen ValueError , weil die neue Zeile, die wir hinzufügen möchten, nur zwei Werte hat, der vorhandene DataFrame jedoch vier Spalten.

So beheben Sie den Fehler

Der einfachste Weg, diesen Fehler zu beheben, besteht darin, die Funktion append() zu verwenden, um die neue Zeile am Ende des DataFrame hinzuzufügen, wodurch die fehlenden Werte automatisch mit NaN gefüllt werden:

Die folgende Syntax zeigt, wie diese Funktion in der Praxis verwendet wird:

 #define new row to append
new = ['J', 30]

#append row to end of DataFrame
df = df. append ( pd.Series (new,index= df.columns [: len (new)]), ignore_index= True )

#view updated DataFrame
df

	team points assists rebounds
0 to 18 5.0 11.0
1 B 22 7.0 8.0
2 C 19 7.0 10.0
3 D 14 9.0 6.0
4 E 14 12.0 6.0
5 F 11 9.0 5.0
6 G 20 9.0 9.0
7:28 a.m. 4.0 12.0
8 I 22 8.0 9.0
9 D 30 NaN NaN

Beachten Sie, dass wir keinen ValueError erhalten und die neue Zeile am Ende des DataFrame hinzugefügt wurde.

Beachten Sie auch, dass die beiden fehlenden Werte in der neuen Zeile einfach mit NaN-Werten aufgefüllt wurden.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

Lösung: Spalten überschneiden sich, es ist jedoch kein Suffix angegeben
Problembehebung: Das Objekt „numpy.ndarray“ verfügt nicht über das Attribut „append“.
Lösung: Wenn Sie alle Skalarwerte verwenden, müssen Sie einen Index übergeben

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert