【问题标题】:How to impute Null values in python for categorical data?如何在 python 中为分类数据估算 Null 值?
【发布时间】:2018-09-26 11:34:44
【问题描述】:

我在 R 中看到,分类数据的插补是由 DMwR、Caret 等软件包直接完成的,而且我也有像 KNNCentralImputation 这样的算法选项。但我没有看到 python 中的任何库做同样的事情。 FancyImpute 在数值数据上表现良好。

有没有办法在 python 中对分类数据的 Null 值进行插补?

编辑:添加数据集的前几行。

    >>> data_set.head()
       1stFlrSF  2ndFlrSF  3SsnPorch Alley  BedroomAbvGr BldgType BsmtCond  \
    0       856       854          0   NaN             3     1Fam       TA   
    1      1262         0          0   NaN             3     1Fam       TA   
    2       920       866          0   NaN             3     1Fam       TA   
    3       961       756          0   NaN             3     1Fam       Gd   
    4      1145      1053          0   NaN             4     1Fam       TA   

      BsmtExposure  BsmtFinSF1  BsmtFinSF2  ...   SaleType ScreenPorch  Street  \
    0           No       706.0         0.0  ...         WD           0    Pave   
    1           Gd       978.0         0.0  ...         WD           0    Pave   
    2           Mn       486.0         0.0  ...         WD           0    Pave   
    3           No       216.0         0.0  ...         WD           0    Pave   
    4           Av       655.0         0.0  ...         WD           0    Pave   

       TotRmsAbvGrd TotalBsmtSF  Utilities WoodDeckSF YearBuilt YearRemodAdd  \
    0             8       856.0     AllPub          0      2003         2003   
    1             6      1262.0     AllPub        298      1976         1976   
    2             6       920.0     AllPub          0      2001         2002   
    3             7       756.0     AllPub          0      1915         1970   
    4             9      1145.0     AllPub        192      2000         2000   

      YrSold  
    0   2008  
    1   2007  
    2   2008  
    3   2006  
    4   2008  

    [5 rows x 81 columns]

【问题讨论】:

  • 你在用熊猫吗?你能提供一个minimal reproducible example吗?
  • @pault,是的,我使用的是 pandas,数据集是一个数据框。我目前正在使用波士顿住房数据集。
  • 你想要的输出是什么?
  • @pault,所需的输出是没有空值的数据集。 Fancyimpute 确实对数值列进行了平均/中值插补、Knn 插补等,但我找不到任何用于在分类数据中插补空值的库。
  • 您想用什么来估算空值?最常见的值?

标签: python scikit-learn data-science imputation


【解决方案1】:

处理缺失值的方法很少。据我了解,您想根据特定规则填写 NaN 。可以使用熊猫fillna。下面的代码是如何用最常见的值填充分类 NaN 的示例。

df['Alley'].fillna(value=df['MSZoning'].value_counts().index[0],inplace =True)

这也是我的帮助sklearn.preprocessing.Imputer

更多关于pandas fillna的信息pandas.DataFrame.fillna

希望这会奏效

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 2016-02-27
    • 2018-02-15
    • 1970-01-01
    • 2018-12-29
    • 2021-09-14
    • 2014-10-04
    • 1970-01-01
    • 2016-07-22
    相关资源
    最近更新 更多