首页 > 解决方案 > 使用 pandas 复制非 na 行以填充非 na 列

问题描述

我有一个如下所示的数据框

df = pd.DataFrame({'person_id': [101,101,101,101],
                   'sourcename':['test1','test2','test3','test4'],
                            'Test':[np.nan,np.nan,'B5','B6']})

我想做的是non-na从列中复制行并将其粘贴到列Test下的相应行中sourcename

当我尝试以下操作时,它使sourcename列的其他行成为NA

df['sourcename'] = df.loc[df['Test'].notna()]['Test']

我希望我的输出如下所示

在此处输入图像描述

标签: pythonpandasdataframeseriesna

解决方案


Series.update

我们可以updatesourcename列中的non NaN值与Test列中的值

df['sourcename'].update(df['Test'])

>>> df

   person_id sourcename Test
0        101      test1  NaN
1        101      test2  NaN
2        101         B5   B5
3        101         B6   B6

推荐阅读