numpy np.比较两列是否相同的位置与Excel中的结果不一致

3htmauhk  于 2023-01-20  发布在  其他
关注(0)|答案(1)|浏览(133)

我尝试使用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匹配。
是否有解决此问题的提示?

idv4meu8

idv4meu81#

    • nan是一个特殊值,它不**等于自身,不应该用于相等性测试,需要事先将可比较的值填入df中:
df_ = df.fillna(0)
df['compare'] = np.where(df_['a'] == df_['b'], '0', '1')
a    b compare
0    1B  NaN       1
1   NaN  NaN       0
2   NaN  NaN       0
3   32X  NaN       1
4   NaN  NaN       0
5   NaN  NaN       0
6   NaN  NaN       0
7   NaN  NaN       0
8   NaN  NaN       0
9   NaN  NaN       0
10  NaN  321       1
11  NaN  Z51       1
12  NaN   3Y       1

相关问题