Python:比较两个dataframe是否相等

 

别写df1 == df2(这是逐个元素相比较)。

要写assert_frame_equal。不仅能比较两个df是否相等,还能告诉你哪里不一样。

assert_frame_equal是比较两个df是否完全一模一样。index都要一样!

比较内容时,忽略数据类型,可选参数 check_dtype=False

import pandas as pd
import numpy as np
from pandas.testing import assert_frame_equal

df1 = pd.DataFrame(np.arange(12).reshape(3, -1))
df2 = pd.DataFrame(np.arange(12).reshape(3, -1))

df1 == df2

assert_frame_equal(df1, df2)

没有问题。

换一个df3,2行1列的元素和df1不一样

报错啦。

还会比较index

其他参数,可以参考相关API:pandas.testing.assert_frame_equal — pandas 1.5.2 documentation

比如,近似约等于的比较。

from pandas._testing import assert_frame_equal
assert_frame_equal(left=df2[check_columns], right=df1[check_columns], check_dtype=False, check_names=False, rtol=1e-4)

pandas.testing.assert_frame_equal(leftrightcheck_dtype=Truecheck_index_type='equiv'check_column_type='equiv'check_frame_type=Truecheck_less_precise=Falsecheck_names=Trueby_blocks=Falsecheck_exact=Falsecheck_datetimelike_compat=Falsecheck_categorical=Truecheck_like=Falseobj='DataFrame')

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qcyfred

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值