[英]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.