使用大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,这可能是有用的,或不是有用的。