你好,我有一个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
答案 0 :(得分:1)
使用:
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)
答案 1 :(得分:1)
您可以使用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