Mist, jetzt habe ich auch noch Streamlit gefunden. Jetzt geht mir langsam die Zeit aus...
Python - Formatumwandlung str -> float
-
Seit einigen wenigen Tagen, beschäftige ich mich damit wie man ein paar Daten von einer Webseite ausliest und diese dann entsprechend weiterverarbeitet.
Dabei musste ich so ziemlich das erste Mal in Python rechnen und was kam - Fehler! Die Formate passte nicht. Somit musste ich mich damit beschäftigen, wie man so was umwandelt.
Nehmen wir an, ich erhalte solche Daten
Formatierte Stringwerte aus dem Scraping ['20.605,00', '3.685,50', '3.013,80']
Nehmen wir weiterhin an, es sind € Werte und ich möchte diese addieren. Die Liste von oben hat den Namen result.
# String Werte umwandeln in float, damit ich damit rechnen kann f2 = [] for count, value in enumerate(result): print("Value as String", value) # Tausenderpunkt entfernen! p = value.replace('.', '') # Umwandeln in float, dazu das Komma in einen Punkt umwandeln f = float(p.replace(',', '.')) # Floatwerte abspeichern f2.append(f) # f2.append(f) # Kontrollausgabe print(f2[0]) print(f2[1]) print(f2[2]) addition = f2[0] + f2[1] + f2[2] print("Ergebnis Addition", addition)
Ordentlich formatiert wird das mit
import locale print(locale.format_string("%.2f", addition, grouping = True))
Jetzt hatte ich mir noch die Frage gestellt, wie bekommt man da ein paar Zeilen weg. Ich hatte das schon mal irgendwo gemacht, wusste aber nicht mehr wo. Also Dokumentation im Netz gelesen und folgendes gefunden.
# String Werte umwandeln in float, damit ich damit rechnen kann f2 = [] for count, value in enumerate(result): print("Value as String", value) # Umwandeln in float, Tausenderpunkt entfernen und Komma in einen Punkt umwandeln f = float((value.replace('.', '')).replace(',', '.')) # Floatwerte abspeichern f2.append(f) # f2.append(f)
Auf den Wert (value) wird hier als erstes folgendes angewendet
value.replace('.', '')
Wir entfernen den Tausenderpunkt.
Danach
replace(',', '.')
Das Komma für die Nachkommastellen ersetzen wir durch einen Punkt.
Das Klammern wir mal alles entsprechend ein, verbinden das mit einem Punkt und auf den kompletten Ausdruck wenden wir ein Float an. Ferrtig
Ok, es hat deutlich länger gedauert, bis ich das alles verstanden habe. Mehr Zeit als diesen Beitrag zu tippen, aber wie immer das Ergebnis zählt.
Sollte hier Blödsinn stehen, oder noch besser, sollte jemand bessere Lösungen haben, bitte hier drunter. Ich freue mich über jede konstruktive Antwort.
Ich weiß das einige Variablen Namen nicht PEP konform sind