**
如何使用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)处理