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引擎應用於浮點的轉換器。普通轉換器沒有選擇,“高”表示高精度轉換器,“圓整”表示圓整轉換器。
經過這個引擎處理後小數就得到了一個圓整的處理,和看到的文件是一樣的。