gpt4 book ai didi

python - 使用 fancyimpute 和 pandas 进行数据插补

转载 作者:太空狗 更新时间:2023-10-29 17:31:02 24 4
gpt4 key购买 nike

我有一个很大的 pandas 数据成名 df。它有很多缺失。删除 row/or col-wise 不是一种选择。估算中位数、均值或最频繁的值也不是一种选择(因此不幸的是,使用 pandas 和/或 scikit 进行估算并不能解决问题)。

我遇到了一个看起来很简洁的包,叫做 fancyimpute(你可以找到它 here)。但是我有一些问题。

这是我的做法:

#the neccesary imports
import pandas as pd
import numpy as np
from fancyimpute import KNN

# df is my data frame with the missings. I keep only floats
df_numeric = = df.select_dtypes(include=[np.float])

# I now run fancyimpute KNN,
# it returns a np.array which I store as a pandas dataframe
df_filled = pd.DataFrame(KNN(3).complete(df_numeric))

但是,df_filled 是一个单一的矢量,而不是填充数据框。如何通过插补获得数据框?

更新

我意识到,fancyimpute 需要一个numpay 数组。因此,我使用 as_matrix()df_numeric 转换为数组。

# df is my data frame with the missings. I keep only floats
df_numeric = df.select_dtypes(include=[np.float]).as_matrix()

# I now run fancyimpute KNN,
# it returns a np.array which I store as a pandas dataframe
df_filled = pd.DataFrame(KNN(3).complete(df_numeric))

输出是一个缺少列标签的数据框。有什么方法可以检索标签?

最佳答案

在您的代码后添加以下行:

df_filled.columns = df_numeric.columns
df_filled.index = df_numeric.index

关于python - 使用 fancyimpute 和 pandas 进行数据插补,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45239256/

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