Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的缺失值插补_Python_Pandas_Scikit Learn_Data Science - Fatal编程技术网

python中的缺失值插补

python中的缺失值插补,python,pandas,scikit-learn,data-science,Python,Pandas,Scikit Learn,Data Science,在我的数据集上应用inputer.fit_transform()后,我丢失了转换数据框上的列名。有没有办法在不丢失列名的情况下进行插补 正如我在对问题的评论中所说的,只需用插补器返回的数据替换(重新分配)数据框中的值即可 假设这是您的数据帧: import numpy as np import pandas as pd df = pd.DataFrame(data=[[1,2,3], [3,4,4],

在我的数据集上应用
inputer.fit_transform()
后,我丢失了转换数据框上的列名。有没有办法在不丢失列名的情况下进行插补

正如我在对问题的评论中所说的,只需用插补器返回的数据替换(重新分配)数据框中的值即可

假设这是您的数据帧:

import numpy as np
import pandas as pd

df = pd.DataFrame(data=[[1,2,3], 
                        [3,4,4],
                        [3,5,np.nan], 
                        [6,7,8],
                        [3,np.nan,1]],
                  columns=['A', 'B', 'C'])
当前
df

   A    B    C
0  1  2.0  3.0
1  3  4.0  4.0
2  3  5.0  NaN
3  6  7.0  8.0
4  3  NaN  1.0
如果要将整个
df
发送到插补器,只需使用以下命令:

df[df.columns] = Imputer().fit_transform(df)
如果仅发送某些列,则仅使用这些列分配结果:

columns_to_impute = ['B', 'C']
df[columns_to_impute] = Imputer().fit_transform(df[columns_to_impute])
输出:

     A    B    C
0  1.0  2.0  3.0
1  3.0  4.0  4.0
2  3.0  5.0  4.0
3  6.0  7.0  8.0
4  3.0  4.5  1.0

大家好,欢迎来到SO。请花些时间阅读帮助页面,特别是命名和的部分。更重要的是,请阅读。您可能还想了解。格式化您的问题,并向我们展示您迄今为止的工作。只需使用原始数据框中的列来包装新返回的数据框。是的,sklearn应该与pandas进行更多的集成。但事实上,它们彼此独立。。但是vivek的解决方案很好。谢谢vivek。成功了。我在寻找一种更简单的方法。谢谢你