对相同的 pandas 数据运行相同的脚本会生成略有不同的数据帧浮点值



我正在执行以前对相同数据运行的脚本。我得到的数据帧与前一个数据帧(小数点第 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默认值以使精度更加准确。它不会对性能产生任何影响。

最新更新