我正在寻找比较应该相同的两个数据框。但是,由于浮点精度,我被告知值不匹配。我在下面创建了一个示例进行模拟。如何获得正确的结果,以便最终比较数据帧对两个单元格都返回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
好的,您可以np.isclose为此使用:
np.isclose
In [250]: np.isclose(a,b) Out[250]: array([[ True], [ True]], dtype=bool)
np.isclose需要相对公差和绝对公差。这些有默认值:rtol=1e-05,atol=1e-08分别
rtol=1e-05
atol=1e-08