首页 > 解决方案 > 按其他列填充 NaN 值

问题描述

您好,我有一个 df,例如

COL1 COL2 
SEQ1 SEQ1_67
SEQ2 NaN
SEQ3 SEQ3_7788
SEQ5 SEQQ0
SEQ6 NaN
SEQ7 NaN

我想COL2 NaN用相应的内容填充值COL1并得到

COL1 COL2 
SEQ1 SEQ1_67
SEQ2 SEQ2
SEQ3 SEQ3_7788
SEQ5 SEQQ0
SEQ6 SEQ6
SEQ7 SEQ7

标签: pythonpandas

解决方案


利用:

df.COL2 = df.COL2.mask(df.COL1.eq(df.COL2))

或者:

df.loc[df.COL1.eq(df.COL2), 'COL2'] = np.nan

print (df)
   COL1       COL2
0  SEQ1    SEQ1_67
1  SEQ2        NaN
2  SEQ3  SEQ3_7788
3  SEQ5      SEQQ0
4  SEQ6        NaN
5  SEQ7        NaN

对于反向更简单的是使用Series.fillna

df.COL2 = df.COL2.fillna(df.COL1)

推荐阅读