大熊猫数据帧比较和浮点精度

时间:2015-11-05 15:57:06

标签: python pandas

我希望比较两个应该相同的数据帧。然而,由于浮点精度,我被告知价值观不匹配。我创建了一个示例来模拟它。如何获得正确的结果,以便最终的比较数据帧对两个单元格都返回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  

1 个答案:

答案 0 :(得分:13)

好的,你可以使用np.isclose

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

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

np.isclose采用相对容忍度和绝对容忍度。它们具有默认值:rtol=1e-05atol=1e-08