float64 と pandas to_csv 質問する

float64 と pandas to_csv 質問する

次のような浮動小数点数値を含む CSV を読み取っています。

Bob,0.085
Alice,0.005

そしてデータフレームにインポートし、このデータフレームを新しい場所に書き込みます

df = pd.read_csv(orig)
df.to_csv(pandasfile)

これで次pandasfileのようになります:

Bob,0.085000000000000006
Alice,0.0050000000000000001

何が起こったのでしょうか? float32 などの別の型にキャストする必要があるのでしょうか?

私は使用していますパンダ 0.9.0そしてナンピー 1.6.2

ベストアンサー1

コメントで述べたように、これは一般的な浮動小数点の問題です。

ただし、float_formatキーワード of を使用してto_csv非表示にすることができます。

df.to_csv('pandasfile.csv', float_format='%.3f')

または、0.0001 をゼロに丸めたくない場合は、次のようにします。

df.to_csv('pandasfile.csv', float_format='%g')

あなたに与えるもの:

Bob,0.085
Alice,0.005

出力ファイル内。

の説明については%gフォーマット仕様ミニ言語

おすすめ記事