python - 根据 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”时,我才想更改前一行的值。
谢谢
解决方案
尝试where
与您所做的一起使用:
df = df.where(~df.Sumbitted.isnull(), df.fillna(axis=0, method='ffill'))
Submitted
这将仅在为空时替换条目。
推荐阅读
- mockito - Vertx 应用程序中的 PowerMockito MissingMethodInvocationException
- linux - 为什么 4.0 以上的内核无法从用户空间获取路径名(在文件操作中)?
- hbase - 当我使用 HadoopInputFormat 作为 StreamExecutionEnvironment.createInput 的输入时,我可以使用批处理模式吗?如果不是,为什么?如果是,如何?
- flutter - 如何从存储下载 URL 中获取 Uint8List?
- javascript - 将 Node.js 12 更新到 14 后,云无法运行我的 Vue CLI 应用程序
- c# - 使用 windows 服务访问服务器上的数据库
- c# - 如何解决错误 CS0433:类型“type”同时存在于“Microsoft.UI.Xaml,...”和“Microsoft.UI...”中
- python - 如何将图像添加到 html 电子邮件背景?
- android - 如何在没有任何此类问题的情况下运行本机应用程序?
- .net - 在本地的不同端口上运行 Azure Functions V3 (.NET 5)