I first load two csv files into dataframes. There are some empty values in the dataset as expected:
df1
df2
When I try to compare the dataframes with pandas.DataFrame.eq method, I am also getting False for NaN values.
df_1.eq(df_2)
Result
How can I ignore the false result for NaN values?
CodePudding user response:
Repalce missing values by same value - here same
string:
df_1.fillna('same').eq(df_2.fillna('same'))
CodePudding user response:
Update:
If you compare float values, you shouldn't use eq
but np.isclose
and set the tolerance 6.999999999999999 and 7.0 are not strictly equal but 6.9999999999999999 and 7.0 are equal (one more 9).
You can use:
np.isclose(df1, df2, equal_nan=True)
Old answer
The code below works only on pd.Series
not on pd.DataFrame
.
Use fill_value
parameter of eq
method:
df_1.eq(df_2, fill_value=np.inf)