pandas 讀取csv文件,再寫入文件,產生超長小數位數問題

python中的浮點數是17位精度,所以小數在python中實際是17位,這在用pandas時更能體現出來,假如有這樣的一個csv文件:

其中有很多小數,經由python的pandas讀取,再寫入:

import pandas as pd
df = pd.read_csv('D:\\csv\\Data.csv')
df.to_csv('D:\\csv\\111.csv', index=False)

再查看寫入後的文件:

可以發現,很多小數都變成了超長位數的精確小數,這其實是由於pandas的一個計算引擎導致的。

在read_csv方法中可以找到:float_precision

翻譯過來的意思大致是這樣的:

指定C引擎應用於浮點的轉換器。普通轉換器沒有選擇,“高”表示高精度轉換器,“圓整”表示圓整轉換器。

 

經過這個引擎處理後小數就得到了一個圓整的處理,和看到的文件是一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章