Seite 1 von 1

Schreiben von floats via pandas to_csv unf float_format

Verfasst: Donnerstag 20. August 2020, 08:05
von alti23
Hallo zusammen,

ich möchte eine csv via pandas und df.to_csv erstellen.Einige Spalten nehmen float-Werte mit teilweise reichlich Nachkommastellen auf. Um das Format dieser floats festzulegen, nutze ich den Parameter float_format.
In der csv sollen die Daten später NICHT in wissenschaftlicher Notation vorlegen, und genau so viel Nachkommastellen anzeigen, wie tatsächlich für den jeweiligen Wert notwendig sing.

z.B.:
1.112233445566778899 => 1.112233445566778899
0.123 => 0.123

Problem:
float_format='%f' für dazu, dass max 6Nachkommastellen im csv landen, 1.112233445566778899 => 1.112233
float_format='%.15f' für dazu, dass immer 15Nachkommastellen im csv landen, also 0.123 => 0.123000000000000.

Wie kann da eine Lösung aussehen?

Gruß alti23

Re: Schreiben von floats via pandas to_csv unf float_format

Verfasst: Donnerstag 20. August 2020, 09:36
von __blackjack__
@alti23: Was ist denn Deine Definition von „genau so viel Nachkommastellen anzeigen, wie tatsächlich für den jeweiligen Wert notwendig“? Wie viele Nachkommastellen sind denn für 0,1 notwendig?

Code: Alles auswählen

In [1]: format(0.1, ".60f")                                                     
Out[1]: '0.100000000000000005551115123125782702118158340454101562500000'

Re: Schreiben von floats via pandas to_csv unf float_format

Verfasst: Donnerstag 20. August 2020, 09:45
von Sirius3
Das ist nicht vorgesehen, man will ja keine Zahlen mit hunderten 0en.

Re: Schreiben von floats via pandas to_csv unf float_format

Verfasst: Donnerstag 20. August 2020, 10:09
von alti23
Die Floats, wie in meinem Beispiel oben, stammen so aus einer via Pandas eingelesen xls und sollen genauso im csv landen.
Erzwingt man via float_format die wissenschaftliche Notation, kommt auch was brauchbares raus, also:

0.112233445566778899 => 1.112233445566778899e-01
0.123 => 1.23e-01

Gruß alti23

Re: Schreiben von floats via pandas to_csv unf float_format

Verfasst: Donnerstag 20. August 2020, 10:23
von Sirius3
@alti23: was ist Dein Ziel? Was willst Du mit der csv-Datei machen?

Re: Schreiben von floats via pandas to_csv unf float_format

Verfasst: Donnerstag 20. August 2020, 10:49
von __blackjack__
@alti23: Ich würde sagen das was Du willst ist nicht möglich und würde Dich noch mal bitten die Frage aus meinem letzten Beitrag zu beantworten.

Format-Informationen werden aus der Tabellenkalkulationsdatei nicht ausgelesen, nur die Werte.

Re: Schreiben von floats via pandas to_csv unf float_format

Verfasst: Donnerstag 20. August 2020, 12:07
von alti23
Danke für Eure Hilfe. Ich habe das Problem jetzt so gelöst, dass beim einlesen via dtype=object die Werte als Text gelesen gelesen und gespeichert werden. So landet's dann auch korrekt in der csv.

Gruß alti23