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