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。成功了。我在寻找一种更简单的方法。谢谢你