使用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']
我希望我的输出如下所示
回答
Series.update
我们可以update将sourcename列中的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