Reputation: 1255
I have two dataframes as below: I want to compare two dataframes row by row and if suppose row1 of df1 is not equal to row1 of df2 print an error
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
I want to print an error for row#4 because df1 has the value of 6 for variable 'B' and df1 has the value of 5
Upvotes: 0
Views: 200
Reputation: 121
you should check Andy Hayden's answer here: Outputting difference in two Pandas dataframes side by side - highlighting the difference
what you are trying to do(print error if a row is different) may not be the best option here. which dataframe do you intend to uses as a basis for comparison and add the error column? suppose you choose df1 and compare it to df2, what if df2 has additional rows that are not present in df1; in this case there is no row in df1 to add the error msg.
Upvotes: 0
Reputation: 14216
Did you take a look at the documentation?
df1.eq(df2)
A B
0 True True
1 True True
2 True True
3 True False
4 True True
If you want to see the specific values and rows you can do this
df1[~df1.eq(df2)].dropna(how='all')
A B
3 NaN 6.0
Upvotes: 1