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