如何使用python对比两个dataframe 是否一致

**

如何使用python对比两个dataframe 是否一致

**

背景说明

在日常数据分析工作中,经常会遇到需要对比两个样本的差异。有时候数据集的样本多、维度大,怎样快速判断两个样本是否一致,并找到不一致的行/列?

判断两个数据集是否一致,并返回不一致的行

import pandas as pd

# 创建两个示例DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 5, 3],
                    'B': [4, 5, 6]})

# 比较两个DataFrame是否完全一致
is_equal = df1.equals(df2)

if not is_equal:
    # 获取不一致的行
    diff_rows = df1[~df1.eq(df2).all(axis=1)]
    print(diff_rows)

判断两个数据集是否一致,并返回不一致的列

import pandas as pd

# 创建两个示例DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 7, 6]})

# 比较两个DataFrame是否完全一致
is_equal = df1.equals(df2)

if not is_equal:
    # 获取不一致的列
    diff_columns = df1.columns[~df1.columns.isin(df2.columns)]
    print(diff_columns)

判断两个数据集是否一致,并返回不一致的列占比

import pandas as pd

# 创建两个示例DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 2, 3],
                    'B': [4, 6, 6]})

# 比较两个DataFrame的内容是否一致
is_equal = df1.eq(df2).all().all()

if not is_equal:
    # 获取内容不一致的列
    diff_columns = df1.columns[~(df1 == df2).all()]

    # 计算不一致的比例
    diff_ratio = (df1 != df2).sum() / df1.shape[0]

    print("不一致的列:")
    print(diff_columns)
    print("\n不一致的比例:")
    print(diff_ratio)

注:在实际工作中,A、B两个样本需要行列相同,出现异常时,尝试对数据集进行.reset_index(drop=True)处理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值