按其他列填充NaN值

2024-09-27 07:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我有一个df,比如

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

我想用COL1对应的内容来填充COL2{}值 得到

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

Tags: 内容dfnancol2col1seq2seq1seq5
2条回答

使用:

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

对于反向Simpler,请使用^{}

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

您可以使用numpy.where

In [1334]: df.COL2 = np.where(df.COL2.isna(), df.COL1, df.COL2)

In [1335]: df
Out[1335]: 
   COL1       COL2
0  SEQ1    SEQ1_67
1  SEQ2       SEQ2
2  SEQ3  SEQ3_7788
3  SEQ5      SEQQ0
4  SEQ6       SEQ6
5  SEQ7       SEQ7

相关问题 更多 >

    热门问题