繁体   English   中英

比较两个数据框

[英]Compare two dataframes

我有两个数据帧,如下所示:我想逐行比较两个数据帧,如果假设df1的row1不等于df2的row1,则打印错误

df1

    A     B  
0   1     3
1   2     4 
2   3     5 
3   4     6 
4   5     7 

df2

    A     B  
0   1     3
1   2     4 
2   3     5 
3   4     5
4   5     7

我想为第4行打印错误,因为df1的变量“ B”的值为6,而df1的值为5

您看过文档了吗?

df1.eq(df2)

      A      B
0  True   True
1  True   True
2  True   True
3  True  False
4  True   True

如果要查看特定的值和行,可以执行此操作

df1[~df1.eq(df2)].dropna(how='all')

    A    B
3 NaN  6.0

我喜欢@aws_apprentice的答案。 但是,由于您要求“打印错误”,因此还pandas.testing.assert_frame_equal考虑pandas.testing.assert_frame_equal (docs) ,如果DataFrames不相同,则会引发AssertionError异常并为您提供诊断输出。

您应该在此处检查Andy Hayden的答案: 在两个Pandas数据框中并排输出差异-突出显示差异

您尝试执行的操作(如果行不同则打印错误)可能不是此处的最佳选择。 您打算将哪个数据框用作比较基础并添加错误列? 假设您选择df1并将其与df2进行比较,如果df2具有df1中不存在的其他行,该怎么办; 在这种情况下,df1中没有添加错误msg的行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM