gpt4 book ai didi

python - Python 中的 Hot Deck 插补

转载 作者:行者123 更新时间:2023-12-01 06:39:02 25 4
gpt4 key购买 nike

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

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

但是,我确实看到了这个 GitHub project并且没有发现它有用。

以下是我的一些数据的示例(假设这是一个 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,它使用最后观察结转 (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'])

关于python - Python 中的 Hot Deck 插补,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59541759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com