我正在执行以前对相同数据运行的脚本。我得到的数据帧与前一个数据帧(小数点第 10 位左右)仅略有不同。例如:
- 在某些列(和行)中,旧数据帧包含价格 5673391.88。
- 在新数据帧的同一列和同一行中,值似乎完全相同 (5673391.88)。
- 但是,如果我减去这两列,我会得到 -9.445123e-10 的差异。
当然,整个列都是这种情况,而不仅仅是特定行。这怎么可能?请注意,我无法确认两个脚本运行之间的相同环境(熊猫或 Python 版本)。会不会是这两个原因之一?别的?
一个可能的原因:Pandas 1.2.0
早在26 Dec 2020
年发布,他们强调了这个问题:
更改read_csv和read_table的默认浮点精度
方法
read_csv()
和read_table()
可能会读取floating point
相对于最后一位的精度略有错误的数字。
在此版本之前,floating_precision="high"
始终可用于避免此问题。
但是,在此版本中,现在floating_precision=None
默认值以使精度更加准确。它不会对性能产生任何影响。