比较两个极坐标数据帧是否相等

drh*_*gen 8 python python-polars

如何比较两个极坐标DataFrames的值是否相等?看起来==只有当两个表是同一个对象时才是正确的:

import polars as pl
pl.DataFrame({"x": [1,2,3]}) == pl.DataFrame({"x": [1,2,3]})  # False
Run Code Online (Sandbox Code Playgroud)

drh*_*gen 6

equals它的方法是DataFrame

import polars as pl
pl.DataFrame({"x": [1,2,3]}).frame_equal(pl.DataFrame({"x": [1,2,3]}))  # True
Run Code Online (Sandbox Code Playgroud)

在 0.19.16 版本之前,它被称为frame_equals.


zun*_*rtj 6

除了上面的正确答案之外,值得注意的是,对于单元测试,还有Polars.testing.assert_frame_equal,它提供了更好的错误报告,有更多的配置选项,并针对 False 提出断言。


Her*_*cks 6

更新。2023 年 11 月

2016 年 0.19.16起,frame_equals已弃用,取而代之的是 pl.DataFrame.equals.

import polars as pl

pl.DataFrame({"x": [1,2,3]}).equals(pl.DataFrame({"x": [1,2,3]})) # True
Run Code Online (Sandbox Code Playgroud)