AttributeError: 'float' - Objekt hat kein Attribut 'split'
Rufe ich diese Zeile:
lang_modifiers = [keyw.strip() for keyw in row["language_modifiers"].split("|") if not isinstance(row["language_modifiers"], float)]
Dieser scheint zu arbeiten, wo row["language_modifiers"]
ist ein Wort (atlas method
, central
), aber nicht, wenn es darum geht, wie nan
.
Dachte ich, mein if not isinstance(row["language_modifiers"], float)
fangen konnte, die Zeit, wenn die Dinge kommen, wie nan
aber nicht der Fall.
Hintergrund: row["language_modifiers"]
ist eine Zelle in einer tsv-Datei und wird als nan
wenn die Zelle leer war in der tsv-analysiert wird.
Warum hat sich das downvoted? Nur damit ich weiß. Sie können den test auf die 3 test-Fälle, die ich in die Frage.
InformationsquelleAutor Dhruv Ghulati | 2017-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du hast Recht, solche Fehler meist verursacht durch NaN repräsentieren leere Zellen.
Es ist üblich, heraus zu filtern und diese Daten, bevor Sie Ihre weiteren Operationen mit dieser Redewendung auf Ihre dataframe df:
Alternativ, kann es praktischer
fillna()
Methode zu unterstellen (zu ersetzen)null
Werte mit etwas Verzug.E. g. alle
null
oderNaN
's ersetzt werden können, die mit dem durchschnittlichen Wert für die Spalteoder ersetzt werden kann mit einem Wert wie der leere string "" oder einen anderen Standard-Wert
InformationsquelleAutor Ozgur Ozturk
Könnte man auch verwenden
df = df.dropna(thresh=n)
won
ist die Toleranz. Was bedeutet, es erfordert n Nicht-NA-Werte nicht fallen lassen, die ZeileWohlgemerkt, dieser Ansatz wird entfernen Sie die Zeile
Beispiel: Wenn Sie einen dataframe mit 5 Spalten
df.dropna(thresh=5)
fallen würde jede Zeile, die nicht über 5 gültig ist, oder nicht-Na-Werte.In Ihrem Fall wollen Sie möglicherweise nur zu halten, gültige Zeilen; wenn dem so ist, können Sie den Schwellenwert, um die Anzahl der Spalten, die Sie haben.
pandas Dokumentation auf dropna
InformationsquelleAutor hpl002