python - 使用 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
推荐阅读
- python - 在将日期从 obj 转换为 datetime 数据类型时在 python 中使用 Pandas,我没有正确转换日期。为什么?
- c# - C# Thread.Sleep() _PC 之间执行的其他时间
- java - HTTPS 证书(几乎)每周都会失效
- ios - 如何在 GoogleMobileAds 8.0 (Admob iOS sdk) 中使用 GADInterstitialAd?
- google-bigquery - BigQuery MERGE 查询不适用于空的 REPEATED 字段
- c - 在 C 中实现基本的 vtable
- c# - C# DateTime.Now net48 和 net5 的区别
- spring - 在添加邮件服务器依赖项后,Spring 引导服务循环重启
- powershell - 响应内容不是有效的 JObject:带有 PowerShell 的 Azure Functions
- sql - 如何在 postgresql 中实现“选择前 n 个百分比”(如在 MSSQL 中)