Python 中的 Hot Deck 插补

2023-12-08

我一直在尝试找到允许我替换数据框列中缺失值的 Python 代码。我的分析重点是生物统计学,因此我不习惯使用平均值/中位数/众数来替换值。我想申请“热甲板插补”方法。

我无法在网上找到任何采用数据帧列并使用“Hot Deck Imputation”方法填充缺失值的 Python 函数或包。

然而我确实看到了这个GitHub项目 and did not觉得有用。

以下是我的一些数据的示例(假设这是一个 pandas 数据框):

| age | sex | bmi  | anesthesia score | pain level |
|-----|-----|------|------------------|------------|
| 78  | 1   | 40.7 | 3                | 0          |
| 55  | 1   | 25.3 | 3                | 0          |
| 52  | 0   | 25.4 | 3                | 0          |
| 77  | 1   | 44.9 | 3                | 3          |
| 71  | 1   | 26.3 | 3                | 0          |
| 39  | 0   | 28.2 | 2                | 0          |
| 82  | 1   | 27   | 2                | 1          |
| 70  | 1   | 37.9 | 3                | 0          |
| 71  | 1   | NA   | 3                | 1          |
| 53  | 0   | 24.5 | 2                | NA         |
| 68  | 0   | 34.7 | 3                | 0          |
| 57  | 0   | 30.7 | 2                | 0          |
| 40  | 1   | 22.4 | 2                | 0          |
| 73  | 1   | 34.2 | 2                | 0          |
| 66  | 1   | NA   | 3                | 1          |
| 55  | 1   | 42.6 | NA               | NA         |
| 53  | 0   | 37.5 | 3                | 3          |
| 65  | 0   | 31.6 | 2                | 2          |
| 36  | 0   | 29.6 | 1                | 0          |
| 60  | 0   | 25.7 | 2                | NA         |
| 70  | 1   | 30   | NA               | NA         |
| 66  | 1   | 28.3 | 2                | 0          |
| 63  | 1   | 29.4 | 3                | 2          |
| 70  | 1   | 36   | 3                | 2          |

我想应用一个 Python 函数,该函数允许我输入一列作为参数,并返回该列,并使用“Hot Deck Imputation”方法将缺失值替换为估算值。

我将其用于使用线性和逻辑回归等模型进行统计建模的目的Statsmodels.api。我不会将其用于机器学习。

任何帮助将非常感激!


您可以使用ffill使用last observation carried forward(LOCF) 热代码插补。

#...
df.fillna(method='ffill', inplace=True)

Scikit-learn impute 提供 KNN、Mean、Max 等插补方法。 (https://scikit-learn.org/stable/modules/impute.html)

# sklearn '>=0.22.x'
from sklearn.impute import KNNImputer

imputer = KNNImputer(n_neighbors=2, weights="uniform")

DF['imputed_x'] = imputer.fit_transform(DF[['bmi']])

print(DF['imputed_x'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 中的 Hot Deck 插补 的相关文章

随机推荐

  • 如何使用PowerShell重建Windows搜索索引?

    由于我们没有找到任何解决方案来解决不断增长的 Windows 搜索数据库 即使在 Microsoft 的帮助下 我们决定在数据库达到特定限制时通过 SCOM 定期重建数据库 这与 Windows Server 2012 R2 相关 因此我需
  • 使用plot3在MATLAB中绘制圆锥体

    我正在寻找一种在 3D 冲浪图中的特定位置绘制圆锥体的方法 圆锥体是否也可以具有 50 的透明度 现在我正在使用绘制一个基本的 3D 环境surf功能 我正在尝试使用该功能plot3在特定位置绘制特定尺寸的圆锥体 以下代码通过将圆柱体捏在
  • WPF字典绑定失败很慢

    我有大部分Label我的应用程序中的对象已绑定 以便可以从网络服务中替换它们 我将替换内容存储在字典中 替换内容根据为应用程序加载的客户端而有所不同 我遇到的问题是 大多数时候我不替换标签 并且绑定失败会引发非常慢的异常 这是一个例子 请注
  • 如何使用WWDC 2012“Core Data with iCloud”第227期的示例代码?

    我花了几周的时间来解决这个问题 所以请帮我解决这个问题 我从苹果 WWDC 2012 下载了带有 iCloud 的核心数据示例代码 并尝试将其用于我的应用程序 但没有任何效果 当然 我稍微改变了一些代码 但我不知道我到底应该做什么 也找不到
  • 自定义 JQuery 克隆行属性

    我一直在研究动态添加表行的 JQuery 方法 一个优秀的线程是 如何在 jquery 中使用克隆复制表行并为控件创建新的唯一 ID 最后一个例子就是我在这篇文章中所针对的例子 我有一把小提琴举一个我正在尝试做的事情的例子 这个小提琴还不能
  • 您的应用包含非公开 API 使用

    我正在尝试在 App Store 上提交我的应用程序 但收到以下消息 Your app contains non public API usage Please review the errors correct them and resu
  • 使用 commons-email-1.3 发送电子邮件时出错

    在使用 commons email 1 3 发送电子邮件时 我收到以下错误 我已经下载了外部 jar 并将其添加到项目中 请帮我解决这个问题 package mypkg import org apache commons mail Defa
  • 具有滑动功能的 3 级可扩展列表视图

    我正在创建 3 级可扩展列表 并在第三级具有滑动功能 当使用缓存时 我在第三级 swipelistview 中遇到滑动功能的问题 对于滑动 我使用 47deg android swipelistview https github com 4
  • 从 XML feed 更新 MySQL 记录的最佳方法

    我正在考虑最好的方法 如何从 XML feed 更新表 MySQL 中的记录 我有数据库 该数据库包含来自多个销售门户的每日报价 所以现在 大约午夜我正在从表中删除所有记录 因为我认为从表中删除所有内容比将当前数据与插入的数据进行比较更好
  • Google Cloud ML FAILED_PRECONDITION

    我正在尝试使用 Google Cloud ML 托管 Tensorflow 模型并获取预测 我有一个预训练模型 已上传到云端 并在 Cloud ML 控制台中创建了模型和版本 我按照说明进行操作从这里准备我的数据以请求在线预测 对于 Pyt
  • 如果函数执行时间太长,iPhone 会超时吗?

    我有一个函数 可以使用 cocoa 的 Url 对象从网络获取外部资源 它在模拟器上工作正常 但偶尔在设备本身上失败 这是一个谷歌查询 所以资源显然确实存在 这让我相信硬件上存在一些内部超时障碍 但没有读到这样的障碍是否存在 还有其他人遇到
  • 动态显示和隐藏 JFrame 装饰

    我正在开发一个基于 Java Swing 的应用程序 具有不同的视角 对于 主菜单 透视图 我不希望装饰窗口 JFrame 而在其他透视图中 我确实希望装饰窗口 换句话说 我需要动态更改装饰属性 我尝试过使用setUndecorated f
  • 如何将行的值换行到R中特定字符处的新行

    我有一个包含值的示例数据框 data lt structure list A c Date Values B c 2023 04 03 Heat Capacity nSpecific Heat Capacity nHeat Index ro
  • JSON、CURL 和 Google 的地理定位

    我正在尝试使用谷歌的地理定位 浏览器定位 服务 到目前为止 我认为当我尝试类似的事情时 https maps googleapis com maps api browserlocation json browser firefox sens
  • 如何在 Microsoft Azure 网站上更改 jvm 参数

    我在Azure上创建了一个基于java的网站 并在使用 自定义创建 时选择tomcat作为容器 然后准备好了一个空网站 我可以使用ftp上传WAR文件 但无法触及tomcat文件 我需要更改 JVM 的堆大小 该怎么做 请参见http az
  • 致命错误:调用未定义的函数 mcrypt_get_block_size()

    我正在将我的网站上传到服务器 并且上传成功 之后 当我运行时 它给了我这个错误 致命错误 调用未定义的函数 mcrypt get block size 我也检查我的PHP我的服务器上的版本是5 3 14 我不知道该如何处理这个问题 我使用这
  • 如何通过Javascript与Flash交互?

    目前有一个非常基本的 Flash 项目 它连接到 rtmp 服务器并从网络摄像头传输视频和音频 它从具有特定名称的用户创建流 此外 在同一项目中 还有其他实体可以流式传输的流名称的输入 因此 您可以通过 Flash 进行类似于 Skype
  • 在客户端上找不到 socket.io.js

    这个问题之前已经被问过 但在之前的回复中没有找到任何解决方案 Socket IO 给我带来了两个问题 服务器端给出了此错误 错误 监听 EACCES 我阅读了堆栈溢出并通过发出 sudo 命令来启动服务器来解决此问题 现在客户端似乎没有按照
  • Winform标签控件文本变化的地方

    我有一个 labelControl Text My name 结果是 My name 符号改变位置 如果我写 My name 结果是 My name 我如何阻止它改变位置 您需要设置RightToLeft属性正确 默认情况下这应该是Righ
  • Python 中的 Hot Deck 插补

    我一直在尝试找到允许我替换数据框列中缺失值的 Python 代码 我的分析重点是生物统计学 因此我不习惯使用平均值 中位数 众数来替换值 我想申请 热甲板插补 方法 我无法在网上找到任何采用数据帧列并使用 Hot Deck Imputati