我尝试使用pandas将excel工作表读取到数据框中,但对于浮点列,数据读取不正确。我使用函数read_excel()来完成任务
在excel中,该值是225789.479905466,而在数据帧中,该值是225789.47990546614,这给我从excel导入数据到数据库造成了差异。
有没有人在使用pandas.read_exel()时遇到同样的问题。将csv读取到dataframe没有任何问题。
杰里米
发布于 2016-05-28 06:36:30
我认为这只是浮点错误和/或默认的Excel视图没有向您显示数字的完整精度。
还要考虑以下几点:
from decimal import Decimal
x = Decimal(225789.479905466)
y = Decimal(225789.47990546614)
print(abs(x - y)/y)
6.444904002816901933512563658E-16
那么,6.5e-14%的差异会有意义地改变你的分析结果吗?
我敢打赌,它不会。
发布于 2016-06-03 00:05:41
Excel可能会截断您的值,而不是pandas。如果您从Excel导出到.csv,并且注意如何操作,那么您应该能够使用pandas.read_csv
读取并维护您的所有数据。pandas.read_csv
还有一个未公开的float_precision
kwarg,可能有用,也可能没用。
https://stackoverflow.com/questions/37492173
复制相似问题