LoginSignup
9
8

More than 3 years have passed since last update.

【python】pandas で to_csvするときのフォーマット

Last updated at Posted at 2020-05-31

何度も同じことをググって使っているので、自分なりにメモします。pandas にデータを格納してto_csv としてファイルに保存するときに使います。公開するようのきれいな形式にしたい場合、桁数をそろえたいときに使います。

float のフォーマットを整える

  • float 全体に指定するには、to_csv の引数に float_format="%10.4f"のように設定できる
  • round() を使えます。
    • Series に対して整数を引数にし、小数点や整数の桁数(百の位なら-2)で丸めることができる。
    • DataFrame に round を用いる場合は、引数に辞書をとることで、複数の列に対して独立した設定をできる。
  • 各列ごとに形式を指定するには、map(lambda x: '{形式}'.format(x)) で指定できる。小数点以下1桁なら{0:.1f}、指数表記にしたければ{:.6e}のようにできる。
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')

で、out.csv は

year,month,day,lat,lon,val
2012,6,16,80.862745,-39.834254,0.0
2012,6,16,80.862745,-39.502762,0.1

のように出力されます。同内容は roundを用いて、

df = df.round({"lat":7, "lon":7, "val":1})
9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8