python - Pandas Dataframe 比较和浮点精度

标签 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  

最佳答案

好的,您可以使用 np.isclose为此:

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

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

np.isclose 取相对公差和绝对公差。它们具有默认值:分别为 rtol=1e-05atol=1e-08

关于python - Pandas Dataframe 比较和浮点精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33549193/

相关文章:

python - pd.to_datetime 将 DEC-11 或 JUNE-11 值替换为日期时间列

python - Django:如果找不到请求的数据,有没有办法从 GET 请求转移到 POST 请求?

Python 回溯字符串长度 n 来自字母表 {a,b,c} 与 #a=#b

python - 如何使用 Python 和 xarray 从变量满足 netCDF 数据集标准的位置提取坐标?

整行中的pandas数据框搜索字符串

python - python的pandas插件在canopy环境中不排序?

python - Pandas 分为两个多索引系列

python - 当我尝试在一个图上同时使用一个(线)图和一个条形图制作一个图时,我得到一个奇怪的图

python - 在列表中添加项目,直到其总和超过阈值

Python 元编程 : generate a function signature with type annotation