Seite 1 von 1
dataframe dtype object umwandeln
Verfasst: Mittwoch 3. Oktober 2018, 21:40
von SautaRoc
Hallo,
ich habe per
eine Tabelle in ein Dataframe gelesen.
Wenn ich dann per:
[88 rows x 9 columns]
Basis object
Anzahl int64
dtype: object
die Typen auslese, ergibt sich, dass eine Spalte (Basis) die Zahlen enthält, als object definiert ist.
Die Zahlen sind folgendermassen dargestellt:
usw.
ich bräuchte diese Zahlen als Integer, also
direkt scheint es nicht zu gehen. Könnte mir jemand einen Tipp für einen Lösungsweg geben?
Vielen Dank
Re: dataframe dtype object umwandeln
Verfasst: Mittwoch 3. Oktober 2018, 22:50
von __blackjack__
@SautaRoc: Die Frage ist warum die als `object` definiert sind. Da muss ja irgendwas in der Spalte sein was nicht in eine Zahl umwandelbar ist.
Re: dataframe dtype object umwandeln
Verfasst: Mittwoch 3. Oktober 2018, 23:48
von SautaRoc
gut, das ist vermutlich das '.00' wobei das einfach die amerikanische Schreibweise ist - also eigentlich wäre das bereits eine Zahl. Demzufolge muss dieser Teil weggeknappst werden?
Re: dataframe dtype object umwandeln
Verfasst: Donnerstag 4. Oktober 2018, 00:18
von __blackjack__
@SautaRoc: Eher nicht, es sei denn Du hast ansonsten Kommas für Nachkommastellen in der Tabelle und beim erkennen. Da ist viel wahrscheinlicher irgendwas in der Spalte das *gar nicht* in eine Zahl umgewandelt werden kann. Das kann man aber ohne mehr Code und Daten zu sehen nicht sagen. Kannst Du die Spalte, also das `Series`-Objekt denn mit ``.astype(float)`` ohne Fehlermeldung umwandeln?
Re: dataframe dtype object umwandeln
Verfasst: Donnerstag 4. Oktober 2018, 09:57
von SautaRoc
danke für die Tipps!
folgendes hat funktioniert:
Es musste also zunächst der object-typ in float umgewandelt werden, um dann ein integer daraus zu erzeugen.
Re: dataframe dtype object umwandeln
Verfasst: Donnerstag 4. Oktober 2018, 10:15
von __blackjack__
@SautaRoc: Das ist aber immer noch etwas mysteriös warum das nicht schon beim einlesen passiert ist, also zumindest das der Datentyp als Gleitkommazahl erkannt wurde.