草庐IT

python - Pandas Dataframe 比较和浮点精度

我正在比较两个应该相同的数据帧。但是由于浮点精度,我被告知这些值不匹配。我在下面创建了一个示例来模拟它。我怎样才能得到正确的结果,以便最终比较数据框对两个单元格都返回true?a=pd.DataFrame({'A':[100,97.35000000001]})b=pd.DataFrame({'A':[100,97.34999999999]})printaA0100.00197.35printbA0100.00197.35print(a==b)A0True1False 最佳答案 好的,您可以使用np.isclose为此:In[250]

python - 使用值接近 0 的 math.isclose 函数

正如我们所知,由于数字的二进制表示,此表达式的计算结果为False(至少在Python中是这样):0.2+0.4==0.6为了能够检查数值错误中的相等性,math模块提供了isclose:importmathmath.isclose(0.2+0.4,0.6)最后一个表达式按预期产生True。现在为什么下面的表达式又是False?math.isclose(0.2+0.4-0.6,0.0)似乎与0.0相比的所有内容都是Falsemath.isclose(1.0e-100,0.0) 最佳答案 答案可以通过阅读documentation得出