【问题标题】:Python: Dealing with NaN Values using Imputer on Dataframe index wisePython:在数据帧索引上使用 Imputer 处理 NaN 值
【发布时间】:2017-08-30 01:24:32
【问题描述】:

我有一个包含一些 NaN 值的数据,我想使用 imputer 填充 NaN 值。

from sklearn.preprocessing import Imputer 
imp = Imputer(missing_values='NaN', strategy='mean', axis=1) 
cleaned_data = imp.fit_transform(original_data)

到目前为止,我知道 imputer 可以在整个专栏中使用这样的:

            Point1        Point2
S.No
             2              NaN
1            NaN            4
             2              NaN
             NaN            4
2            2              NaN
             NaN            4

应用 imputer 后数据如下:

            Point1        Point2
S.No
             2              2
1            1              4
             2              2
             1              4
2            2              2
             1              4

但我希望 imputer works index wise name as S.No

            Point1        Point2
S.No
             2              1.33
1            1.333          4
             2              1.33
             0.667          4
2            2              2.667
             0.667          4

是否可以像这样实现imputer,或者在python 上的DataFrame 上存在任何替代方法可以这样做。

【问题讨论】:

  • 这里的S.No 是什么?指数?而且我似乎无法重现您的结果。你的数据框是熊猫数据框吗?
  • 我像这样导入我的数据 data = pd.read_csv("filename.csv",index_col = [0]);是的!! S.No 是索引,是的!我的数据框是熊猫数据框
  • 当我运行您的插补变换时,Point1 列填充的是 4 而不是 1。也许您想设置 axis = 1

标签: python-3.x dataframe scikit-learn nan imputation


【解决方案1】:
imp = Imputer(missing_values=np.NaN,strategy='mean',axis=1)
for S.No in range (start,end):
    for col in list(Data.select_dtypes(include=['float']).columns):
        Data[col][S.No] = imp.fit_transform(Data[col][S.No])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-22
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 2019-03-28
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多