小编典典

Pandas数据框比较和浮点精度

python

我正在寻找比较应该相同的两个数据框。但是,由于浮点精度,我被告知值不匹配。我在下面创建了一个示例进行模拟。如何获得正确的结果,以便最终比较数据帧对两个单元格都返回true?

a = pd.DataFrame({'A':[100,97.35000000001]})
b = pd.DataFrame({'A':[100,97.34999999999]})
print a

   A  
0  100.00  
1   97.35

print b

   A  
0  100.00  
1   97.35

print (a == b)

   A  
0  True  
1  False

阅读 225

收藏
2020-12-20

共1个答案

小编典典

好的,您可以np.isclose为此使用:

In [250]:
np.isclose(a,b)

Out[250]:
array([[ True],
       [ True]], dtype=bool)

np.isclose需要相对公差和绝对公差。这些有默认值:rtol=1e-05atol=1e-08分别

2020-12-20