python - Pandas - 用另一列中的字符串填充 NaN
问题描述
我有 2 列(“姓氏”和“邮政编码”)。数据框已被过滤为仅包含重复的姓氏:
Surname | PostCode
Adams | NaN
Adams | NaN
Bryan | NX203
Bryan | NaN
Cormack | NaN
Cormack | NaN
Cormack | NZ233
Dylan | NaN
Dylan | NaN
Dylan | NaN
其中一些根本没有邮政编码。然而,对于那些有的人,我想用任何东西来填补缺失的东西。例如,包含“Bryan”的第二行应该用 NX203 填充(就像上面的行一样)。同样,其他两个 Cormack 实例应填充 NZ233。
我不知道从哪里开始。我认为它必须是应用于每一行的python函数,但不确定如何开始/做什么。
解决方案
让我们试试groupby().transform()
:
df['PostCode'] = df.groupby('Surname').PostCode.transform('first')
输出:
Surname PostCode
0 Adams NaN
1 Adams NaN
2 Bryan NX203
3 Bryan NX203
4 Cormack NZ233
5 Cormack NZ233
6 Cormack NZ233
7 Dylan NaN
8 Dylan NaN
9 Dylan NaN
推荐阅读
- powershell - 我创建了一个 Hyper-V 副本警报脚本,但在满足条件时努力让它提醒我
- random - 有没有办法使用 Stata 的 rnormal() 函数从正态分布的特定十分位数中获取随机样本?
- java - 在Java中声明对象时(类名)是什么意思 - Android
- python - 如何使用 Python 抓取 RottenTomatoes 观众评论?
- r - 将 data.table 旋转到某些功能的顺序而不是某些功能的位置?
- javascript - 为什么 Angular 8 表单多次提交?
- mysql - 分组和删除除了 SQL 中的一列之外的重复项
- c - 让我的结构实例将某些数字“翻译”成某些字符串
- python - 重命名数据框列
- jupyter-lab - 谷歌云AI笔记本保存不起作用