Pandas-json转换扰乱了浮点精度



to_json()将DataFrame保存为json字符串后,当json被用read_json()强制转换回DataFrame时,初始DataFrame和结果DataFrame不相等。我知道使用np.isclose()时存在转换问题,但由于目标是将DataFrame保存在一个文件中供以后使用,有没有办法防止这些不准确之处?

请注意,这是一个最小的可复制示例,但实际数据包含非常精确的浮点值。

创建DataFrame并进行转换:

initialDF = pd.DataFrame({
'int':[1, 2, 3, 4, 5],
'f':[0.3, 0.05, 0.888, 152.1, 8.12]
})
jsonString = initialDF.to_json()
resultDF = pd.read_json(jsonString)

结果:

>>> print(initialDF.equals(resultDF))
False
>>> initialDF.loc[0, 'f']
0.3
>>> resultDF.loc[0, 'f']
0.30000000000000004

只需添加precise_float=True

resultDF = pd.read_json(jsonString,precise_float=True)

相关内容

  • 没有找到相关文章

最新更新