[Python] Format, wenn to_csv mit Pandas
Ich habe immer und immer wieder dasselbe verwendet, also notieren Sie es sich. Es wird verwendet, wenn Daten in Pandas gespeichert und als to_csv in einer Datei gespeichert werden. Verwenden Sie diese Option, wenn Sie ein sauberes Format für die Veröffentlichung haben möchten und wenn Sie die gleiche Anzahl von Ziffern haben möchten.
Formatieren Sie den Float
- Um den gesamten float anzugeben, kann das Argument von to_csv als "float_format ="% 10.4f "" gesetzt werden
- Sie können
round ()
verwenden.
- Sie können eine Ganzzahl als Argument für Series verwenden und sie mit einem Dezimalpunkt oder der Anzahl der Stellen der Ganzzahl (-2 für Hunderte) runden.
- Wenn Sie "round" für DataFrame verwenden, können Sie unabhängig voneinander mehrere Spalten festlegen, indem Sie ein Wörterbuch als Argument verwenden.
- Um das Format für jede Spalte anzugeben, können Sie es mit map (lambda x: '{format}'. Format (x)) angeben. Sie können "{0: .1f}" für eine Ziffer mit weniger als ein paar Punkten pro Woche und "{: .6e}" für die Exponentialschreibweise verwenden.
import pandas as pd
df = pd.read_csv("latlon.csv")
df['val'] = df['val'].map(lambda x: '{0:.1f}'.format(x))
df.to_csv("out.csv", index=False, header=True, float_format='%11.6f')
Und out.csv ist
year,month,day,lat,lon,val
2012,6,16,80.862745,-39.834254,0.0
2012,6,16,80.862745,-39.502762,0.1
Wird ausgegeben als. Der gleiche Inhalt verwendet "rund",
df = df.round({"lat":7, "lon":7, "val":1})
- Ich durfte mich beziehen.
- https://stackoverflow.com/questions/20003290/output-different-precision-by-column-with-pandas-dataframe-to-csv
- https://note.nkmk.me/python-pandas-round-decimal/