我正在比较两个应该相同的数据帧。但是由于浮点精度,我被告知这些值不匹配。我在下面创建了一个示例来模拟它。我怎样才能得到正确的结果,以便最终比较数据框对两个单元格都返回 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
为此:
In [250]:
np.isclose(a,b)
Out[250]:
array([[ True],
[ True]], dtype=bool)
np.isclose
取相对公差和绝对公差。它们具有默认值:分别为 rtol=1e-05
、atol=1e-08
关于python - Pandas Dataframe 比较和浮点精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33549193/