使用大pandas读取excel时精度的损失

我试图使用pandas来读取一个dataframe的Excel表格,但浮点列,数据读取不正确。 我使用函数read_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%的差异是否会有意义地改变你的分析结果呢?

我敢打赌,它不会。

Excel可能会截断你的价值,而不是pandas。 如果您从Excel导出到.csv文件并谨慎操作,则应该可以使用pandas.read_csv进行读取并保留所有数据。 pandas.read_csv也有一个没有logging的float_precision kwarg,这可能是有用的,或不是有用的。