检查与包含 None 值的 Python 数据帧是否相等

Check equality with Python dataframe containing None values

我正在将数据框与字典进行如下比较...

if not ( (df['Column1'] == a['Column1']) & (df['Column2'] == a['Column2']) ).any():
    print("not in list")

我的数据框 (df) 和字典 (a) 都可能包含一个 None 值,但我注意到当比较 2 个 None 值时,它们不被认为是相等的所以我打印“不在列表中”,即使 df 和 a 都具有相同的值。

如能提出解决此问题的最佳方法,我们将不胜感激。也许我必须将 None 值转换为比较 return True 的字符串?

这里的问题是 np.NAN == np.NAN解析为 False。您可以使用 pd.DataFrame.equals,它将相同位置的 NaN 视为相等。在读起来像

的代码中
if df[['Column1', 'Column2']].equals(a[['Column1', 'Column2']]):