我尝试使用np. where比较两列的值是否相等,但得到的结果不一致。
df['compare'] = np.where(df['a'] == df['b'], '0', '1')
输出:
a b compare
1B NaN 1
NaN NaN 1
NaN NaN 1
32X NaN 1
NaN NaN 1
NaN NaN 1
NaN NaN 1
NaN NaN 1
NaN NaN 1
NaN NaN 1
NaN 321 1
NaN Z51 1
NaN 3Y 1
这个命令将NaN对作为不匹配返回似乎很奇怪。我确认了列'a'和列'b'都是字符串数据类型。
我仔细检查了原始的CSV文件。使用Excel中的"if"公式,我发现了另外几对不匹配。在Excel中的匹配中没有识别出NaN匹配。
是否有解决此问题的提示?
1条答案
按热度按时间idv4meu81#
nan
是一个特殊值,它不**等于自身,不应该用于相等性测试,需要事先将可比较的值填入df
中: