Python ist eine leistungsstarke Sprache für die Datenaufbereitung, aber es gibt einige häufige Fehler oder Fallstricke, auf die Menschen stoßen können. In diesem Blogbeitrag werde ich Besprechen Sie fünf der häufigsten Probleme, mit denen Menschen bei der Nutzung konfrontiert werden Python zur Datenvorbereitung.
Falsch, Keine und 0 (beliebigen numerischen Typs) werden alle als Falsch ausgewertet.
Dieser Satz von Objekten und Werten wird als „falsch“ und „falsch“ bezeichnet als falsch auswerten. NaN oder fehlende Werte sind nicht falsch und daher wird nicht als falsch ausgewertet. Dies kann bei vielen Vorgängen zu großer Verwirrung und unerwartetem Verhalten führen.
Es scheint einfach genug, dass NaN == NaN „true“ zurückgibt. Beide Werte „sehen“ gleich aus.
Da es jedoch unmöglich ist zu wissen, ob die beiden fehlenden Werte gleich sind, wird dieser Vorgang immer „false“ zurückgeben.
Die all()-Methode gibt true zurück, wenn alle Elemente der Iterable wahr sind (oder wenn das Iterable ist leer).
Betrachten Sie es nicht als „Gib true zurück, wenn alle Elemente des iterable sind wahr“, sondern „Gib true zurück, wenn es keine false gibt.“ Elemente im Iterable.“
Wenn das Iterable leer ist, kann es keine falschen Elemente darin enthalten, was bedeutet, dass all([]) als True ausgewertet wird.
Pandas folgt der Numpy-Konvention, einen Fehler auszulösen, wenn Sie Versuchen Sie, etwas in einen Bool umzuwandeln. Dies geschieht in einem if oder when using die booleschen Operationen und, oder, oder nicht.
Es ist nicht klar, wie das Ergebnis aussehen soll. Sollte es wahr sein weil es nicht die Länge Null hat? Falsch, weil es falsche Werte gibt?
Es ist unklar, daher löst Pandas stattdessen einen ValueError aus
ValueError: Der Wahrheitswert einer Serie ist nicht eindeutig.
Verwenden Sie a.empty, a.bool() a.item(),a.any() oder a.all().
Die isin()-Operation gibt eine boolesche Reihe zurück ob jedes Element in der Serie genau im übergebenen enthalten ist Folge von Werten.
s = pd.Series(['dog', 'cat', 'fish']) >>> s.isin(['bird']) 0 False 1 False 2 False dtype: bool
Beachten Sie, dass „Vogel“ in der Reihe nicht existiert.
>>> s.isin(['bird', 'cat']) 0 False 1 True 2 False dtype: bool
Beachten Sie „Katze“ existiert im 2. Wert der Reihe.
Python ist eine mächtige Sprache, aber es kann zu Verwirrung kommen fehlende und boolesche Werte. Beachten Sie, dass fehlende Werte vorhanden sind gelten als falsch und können nicht verglichen werden.
Bedenken Sie bei Verwendung der all()-Methode, dass sie zurückgibt true, wenn die Iterable keine falschen Werte enthält. Wenn alle Werte vorhanden sind fehlen, wie im Fall eines leeren Arrays, gibt all() ebenfalls true zurück, da fehlende Werte nicht als falsch betrachtet werden.
Wenn Sie beim Versuch, in Bool-Werte zu konvertieren, einen ValueError erhalten, befolgen Sie unbedingt die hilfreichen Ratschläge und verwenden Sie eine der vorgeschlagenen Methoden.
Das obige ist der detaillierte Inhalt von5 häufige Python-Fallstricke bei der Datenvorbereitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!