Ein Fehler, auf den Sie bei der Verwendung von Pandas stoßen können, ist:
KeyError: "['Label'] not found in axis"
Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, eine Spalte aus …
Ein Fehler, auf den Sie in Python stoßen können, ist der folgende:
TypeError:Cannot perform 'rand_' with a dtyped [int64] array and scalar of type [bool]
Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, einen Pandas-DataFrame mit mehreren Bedingungen zu filtern, aber keine Klammern um jede einzelne Bedingung verwenden.
Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.
Angenommen, wir haben den folgenden Pandas DataFrame:
import pandas as pd
#Dataframe erstellen
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'points': [18, 22, 19, 14, 14, 11, 20, 28],
'assists': [5, 7, 7, 9, 12, 9, 9, 4],
'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})
#Dataframe anzeigen
print(df)
team points assists rebounds
0 A 18 5 11
1 A 22 7 8
2 A 19 7 10
3 A 14 9 6
4 B 14 12 6
5 B 11 9 5
6 B 20 9 9
7 B 28 4 12
Nehmen wir nun an, wir versuchen, den DataFrame zu filtern, um nur Zeilen anzuzeigen, in denen die Teamspalte gleich „A“ und die Punktespalte größer als 15 ist:
# Versuch, DataFrame zu filtern
df.loc[df.team == 'A' & df.points > 15]
TypeError:Cannot perform 'rand_' with a dtyped [int64] array and scalar of type [bool]
Wir erhalten einen Fehler, weil wir nicht jede einzelne Bedingung in Klammern gesetzt haben.
Um diesen Fehler zu beheben, müssen wir nur sicherstellen, dass wir bei der Durchführung des Filters jede einzelne Bedingung in Klammern setzen:
#Dataframe filtern
df.loc[(df.team == 'A') & (df.points > 15)]
team points assists rebounds
0 A 18 5 11
1 A 22 7 8
2 A 19 7 10
Beachten Sie, dass wir den DataFrame erfolgreich filtern können, um nur die Zeilen anzuzeigen, in denen Team gleich „A“ ist und in denen Punkte größer als 15 sind.
Beachten Sie, dass wir auch Klammern um jede einzelne Bedingung setzen müssen, wenn wir ein oder „|“ verwenden. Operator stattdessen:
# Filtern Sie Zeilen, in denen das Team gleich "A" ist oder die Punktezahl größer als 15 ist
df.loc[(df.team == 'A') | (df.points > 15)]
team points assists rebounds
0 A 18 5 11
1 A 22 7 8
2 A 19 7 10
3 A 14 9 6
6 B 20 9 9
7 B 28 4 12
Beachten Sie, dass wir erneut alle Fehler vermeiden.
Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Pandas beheben können:
Problembehebung: Modul „Pandas“ hat kein Attribut „Dataframe“
Behebung: TypeError: Keine numerischen Daten zum Plotten
So beheben Sie KeyError in Pandas
Ein Fehler, auf den Sie bei der Verwendung von Pandas stoßen können, ist:
KeyError: "['Label'] not found in axis"
Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, eine Spalte aus …
Ein Fehler, auf den Sie bei der Verwendung von Pandas stoßen können, ist:
ValueError: columns overlap but no suffix specified: Index(['column'], dtype='object')
Dieser Fehler tritt auf, wenn Sie …