python - `assert_frame_equal` 和 `equals` 有什么区别
问题描述
我很想知道assert_frame_equal
和之间的区别equal
。两者都用于检查两个数据的相等性。它适用于assert_series_equal
和assert_index_equal
。那么equals和testing函数有什么区别呢?
到目前为止,我发现测试函数在比较值(如check_dtpye
选项等)方面提供了更多的灵活性,并且与返回值不同这是它们之间的唯一区别吗?
否则,我什么时候应该使用 equals 方法以外的测试功能?
df1=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10]})
df2=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10]})
pd.testing.assert_frame_equal(df1,df2)
print df1.equals(df2)
pd.testing.assert_series_equal(df1['a'],df2['a'])
print df1['a'].equals(df2['a'])
pd.testing.assert_index_equal(df1.index,df2.index)
print df1.index.equals(df2.index)
解决方案
assert_frame_equal
AssertionError
当两个 DataFrame 不相等时抛出一个。
pd.testing.assert_frame_equal(df1, df2) # no result - pass
pd.testing.assert_frame_equal(df1, pd.DataFrame()) # throws error - fail
# AssertionError
DataFrame.equals
只返回一个布尔值 True/False。
df1.equals(df2)
# True
df1.equals(pd.DataFrame())
# False
中定义的其他函数也是如此,这些函数pd.testing
用于为 pandas 代码开发单元测试。
推荐阅读
- android - 在本地通过nodejs服务器发布android GPS位置?
- mapbox - Mpabox GL case 表达式输出,执行数学表达式
- regex - 正则表达式:如何强制可选组匹配
- finite-automata - 在自动机中使用字母表
- python - 如何从只有一个值的列表中拆分多个数字
- python - 用向量化方式从函数创建带有 numpy 的矩阵?
- python-3.x - Python Aliexpress API promoLinkGenerate
- arrays - 在 Google 表格中乘以嵌套的 IF
- java - 如何在 Tycho 构建中设置 Java 编译器兼容性?
- apache-spark - PYSPARK:如何根据条件更新列中的值