Hallo liebes Forum,
ich habe eine Datenbank als CSV aus dem Internet heruntergeladen.
Dabei sind die Zahlen im englischen Format mit Tausendertrennzeichen, z.B. '10,566.89'.
In Excel an sich kann ich das nicht ändern, weil jede Zeile in dem Format ist: "Mar 27, 2019,"91,903.40","95,297.25","95,297.25","91,903.40","5.90M","-3.57%"", was zwar perfekt zum Einlesen in Python ist, ich aber die Zahl an sich nicht in Excel umformatieren kann.
Somit wird die Zahl als string anerkannt.
Wie schaffe ich es in Python so eine Zahl in einen float umzuwandeln, damit ich damit arbeiten kann?
Einfaches float('10,566.89') bringt nur einen Fehler.
Beste Grüße
Lachsnacken
Zahl mit Tausendertrennzeichen in float umwandeln
das Komma muss weg
Code: Alles auswählen
float('10,566.89'.replace(",",""))
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
-
- User
- Beiträge: 5
- Registriert: Freitag 10. Mai 2019, 21:13
Danke für die Antwort Thomas! Ich komme erst jetzt darauf zurück, weil das ein Nebenprojekt ist, wofür ich nur ab und zu Zeit habe.
Die Zahlen, um die es geht, sind in einem pandas Dataframe gespeichert. Wenn ich einen Wert abrufe wird er mir so ausgegeben: ['12,977.71']
Damit kann ich den nicht direkt in den Befehl einspeisen, den du beschrieben hast.
Der Datentyp ist ein numpy array und ich schaffe es nicht, diesen in einen float zu konvertieren.
Der Code
wobei a der Wert aus dem Dataframe ist, gibt nur den Fehler aus "ValueError: could not convert string to float: '12,977.71'"
Ich hoffe das war verständlich...
Hat jemand eine Idee, wie ich das handhaben kann?
Die Zahlen, um die es geht, sind in einem pandas Dataframe gespeichert. Wenn ich einen Wert abrufe wird er mir so ausgegeben: ['12,977.71']
Damit kann ich den nicht direkt in den Befehl einspeisen, den du beschrieben hast.
Der Datentyp ist ein numpy array und ich schaffe es nicht, diesen in einen float zu konvertieren.
Der Code
Code: Alles auswählen
print(a.astype(float))
Ich hoffe das war verständlich...
Hat jemand eine Idee, wie ich das handhaben kann?