Python 如何使用pandas估算缺失值?
我试图将缺失值作为列中其他值的平均值进行插补;但是,我的代码没有任何效果。有人知道我可能做错了什么吗?谢谢 我的代码:Python 如何使用pandas估算缺失值?,python,data-analysis,Python,Data Analysis,我试图将缺失值作为列中其他值的平均值进行插补;但是,我的代码没有任何效果。有人知道我可能做错了什么吗?谢谢 我的代码: from sklearn.preprocessing import Imputer imputer = Imputer(missing_values ='NaN', strategy = 'mean', axis = 0) imputer = imputer.fit(x[:, 1:3]) x[:, 1:3] = imputer.transf
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values ='NaN', strategy =
'mean', axis = 0)
imputer = imputer.fit(x[:, 1:3])
x[:, 1:3] = imputer.transform(x[:, 1:3])
print(dataset)
输出
Country Age Salary Purchased
0 France 44.0 72000.0 No
1 Spain 27.0 48000.0 Yes
2 Germany 30.0 54000.0 No
3 Spain 38.0 61000.0 No
4 Germany 40.0 NaN Yes
5 France 35.0 58000.0 Yes
6 Spain NaN 52000.0 No
7 France 48.0 79000.0 Yes
8 Germany 50.0 83000.0 No
9 France 37.0 67000.0 Yes
将插补器对象指定给变量插补器:
imputer = Imputer(missing_values ='NaN', strategy = 'mean', axis = 0)
然后对输入对象调用fit()
函数,然后调用transform()
函数
然后打印
dataset
变量,我不确定它来自哪里。您的意思是打印输入对象,还是打印其中一个调用的结果 您可以执行以下操作,假设df
是您的数据集:
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values ='NaN', strategy = 'mean', axis = 0)
df[['Age','Salary']]=imputer.fit_transform(df[['Age','Salary']])
print(df)
Country Age Salary Purchased
0 France 44.000000 72000.000000 No
1 Spain 27.000000 48000.000000 Yes
2 Germany 30.000000 54000.000000 No
3 Spain 38.000000 61000.000000 No
4 Germany 40.000000 63777.777778 Yes
5 France 35.000000 58000.000000 Yes
6 Spain 38.777778 52000.000000 No
7 France 48.000000 79000.000000 Yes
8 Germany 50.000000 83000.000000 No
9 France 37.000000 67000.000000 Yes
嘿,丹妮尔!因此,dataset变量是在我的代码前面创建的:dataset=pd.read_csv('Data1.csv');我把它打印出来是为了看看是否在年龄和薪水栏中输入了平均值来填写NaN值。打印它会导致代码下面显示的输出。在打印数据集时,我看到NaN值没有被正确的值替换,这使我相信我的代码没有任何效果。在新版本的
sklearn
中,使用来自sklearn.impute import SimpleImputer的。