我嘗試使用熊貓將excel表格讀入數據幀,但對於浮點列,數據讀取不正確。我使用函數read_excel()來完成任務使用熊貓讀取excel時丟失精度
在excel中,值爲225789.479905466,而在數據框中,值爲225789.47990546614,這導致我將數據從excel導入到數據庫時出現差異。
有沒有人會面對與pandas.read_exel()相同的問題。閱讀csv到數據框我沒有問題。
傑里米
我嘗試使用熊貓將excel表格讀入數據幀,但對於浮點列,數據讀取不正確。我使用函數read_excel()來完成任務使用熊貓讀取excel時丟失精度
在excel中,值爲225789.479905466,而在數據框中,值爲225789.47990546614,這導致我將數據從excel導入到數據庫時出現差異。
有沒有人會面對與pandas.read_exel()相同的問題。閱讀csv到數據框我沒有問題。
傑里米
我相信這僅僅是浮點錯誤和/或默認的Excel視圖沒有顯示你的號碼的全精度。
還要考慮以下幾點:
from decimal import Decimal
x = Decimal(225789.479905466)
y = Decimal(225789.47990546614)
print(abs(x - y)/y)
6.444904002816901933512563658E-16
所以是6.5E-14%的差異要切實改變你分析的結果?
我敢打賭,它不會。
該文件存儲金額因此我需要它是確切的雖然 –
@JeremyNguyen然後在計算機上的浮點精度是錯誤的方式來做到這一點 –
Excel可能會截斷您的值,而不是熊貓。如果您從Excel中導出爲.csv並小心操作,則應該能夠使用pandas.read_csv
進行閱讀並保留所有數據。 pandas.read_csv
也有一個無證的float_precision
kwarg,這可能是有用的,或無用的。
http://floating-point-gui.de/ –
當你導出到csv(使用Excel),然後使用read_csv時,你有同樣的問題嗎? –
實際上我只是在更詳細的檢查,如果我使用read_csv,我也面臨同樣的問題,我的一些單元格有精度高達8或9號 –