我希望比较两个应该相同的数据帧。然而,由于浮点精度,我被告知价值观不匹配。我创建了一个示例来模拟它。如何获得正确的结果,以便最终的比较数据帧对两个单元格都返回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
答案 0 :(得分:13)
好的,你可以使用np.isclose
:
In [250]:
np.isclose(a,b)
Out[250]:
array([[ True],
[ True]], dtype=bool)
np.isclose
采用相对容忍度和绝对容忍度。它们具有默认值:rtol=1e-05
,atol=1e-08