簡體   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