使用 Pandas 复制非 na 行以填充非 na 列

SSM*_*SMK 2 python series dataframe pandas na

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

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

我希望做的就是复制non-na从行Test列,并将其粘贴到相应的下排sourcename列

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

df['sourcename'] = df.loc[df['Test'].notna()]['Test']
Run Code Online (Sandbox Code Playgroud)

我希望我的输出如下所示

在此处输入图片说明

Shu*_*rma 5

Series.update

我们可以update将sourcename列中的non NaN值与Test列中的值

df['sourcename'].update(df['Test'])
Run Code Online (Sandbox Code Playgroud)
>>> df

   person_id sourcename Test
0        101      test1  NaN
1        101      test2  NaN
2        101         B5   B5
3        101         B6   B6
Run Code Online (Sandbox Code Playgroud)