检查与包含 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']]):
我正在将数据框与字典进行如下比较...
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']]):