代码之家  ›  专栏  ›  技术社区  ›  Mykola Zotko

不要比较缺失值/NaN值

  •  0
  • Mykola Zotko  · 技术社区  · 5 年前

    如何比较两个系列并保留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
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   Mark Wang    5 年前

    如果你最终允许浮动,试试这个

    s1.eq(s2).mask(s1.isna() | s2.isna())
    

    如果你想保持布尔值

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