Pandas Don';t比较缺少的/NaN值

Pandas Don';t比较缺少的/NaN值,pandas,numpy,comparison,nan,missing-data,Pandas,Numpy,Comparison,Nan,Missing Data,如何比较两个系列并保留NaN值?例如: s1 = pd.Series([np.nan, 1, 3]) s2 = pd.Series([0, 2, 3]) s1.eq(s2).astype(int) 输出: 0 0 1 0 2 1 dtype: int64 预期结果: 0 NaN 1 0.0 2 1.0 dtype: float64 如果最后允许浮动,请尝试此操作 s1.eq(s2).mask(s1.isna() | s2.isna()) 或者如果你

如何比较两个系列并保留NaN值?例如:

s1 = pd.Series([np.nan, 1, 3])

s2 = pd.Series([0, 2, 3])

s1.eq(s2).astype(int)
输出:

0    0
1    0
2    1
dtype: int64
预期结果:

0    NaN
1    0.0
2    1.0
dtype: float64

如果最后允许浮动,请尝试此操作

s1.eq(s2).mask(s1.isna() | s2.isna())
或者如果你想保持布尔值

s1.eq(s2).mask(s1.isna() | s2.isna()).astype("boolean")

如果保留NaN,则False和True将变为浮点0/1。除非你用这个:@MarkWang很好。我会试着重写我的问题。