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的