首页 > 解决方案 > 根据 Python 中特定列的值替换缺失值

问题描述

我想根据已提交列的值替换缺失值。

在下面找到我所拥有的:

国家 已提交 年龄12 年龄14
2018 1 267
2019
2020 1 244 203
2018 ALB 1 163 165
2019 ALB 1
2020 ALB 1 161
2018 GER 1 451 381
2019 GER
2020 GER 1 361 321

这是我想要的:

国家 已提交 年龄12 年龄14
2018 1 267
2019 267
2020 1 244 203
2018 ALB 1 163 165
2019 ALB 1
2020 ALB 1 161
2018 GER 1 451 381
2019 GER 451 381
2020 GER 1 361 321

我尝试使用命令 df.fillna(axis=0, method='ffill') 但这将所有值 NaN 替换为之前的值,但这不是我想要的,因为如果“提交”列,某些值应保留为 NaN值为 1。

只有当相应的“提交”值为“NaN”时,我才想更改前一行的值。

谢谢

标签: pythonpandasmissing-datafillnaffill

解决方案


尝试where与您所做的一起使用:

 df = df.where(~df.Sumbitted.isnull(), df.fillna(axis=0, method='ffill'))

Submitted这将仅在为空时替换条目。


推荐阅读