【问题标题】:Applying OneHotEncoding on categorical data with missing values对具有缺失值的分类数据应用 OneHotEncoding
【发布时间】:2020-11-25 08:52:25
【问题描述】:

我想对缺失值的 pd.DataFrame 进行 OneHotEncode。当我尝试 OneHotEncode 时,它​​会引发有关缺失值的错误。

ValueError: 输入包含 NaN

当我尝试使用 SimpleImputer 修复缺失值时,它会引发有关分类数据的错误

ValueError:不能对非数字数据使用均值策略: 无法将字符串转换为浮点数:'RH'

由于缺少值,我无法应用 OneHotEncoding,而由于分类数据,我无法应用 SimpleImputer。 除了删除列或行之外,还有其他方法吗?

【问题讨论】:

    标签: python-3.x pandas categorical-data one-hot-encoding imputation


    【解决方案1】:

    您可以使用以下 2 种方法中的任何一种来消除 NaN 分类值 -

    选项 1: 将缺失值替换为最常见的类别。例如,如果您有一列 51% 的值属于一个类别,则使用以下代码填充该类别的缺失值

    df['col_name'].fillna('most_frequent_category',inplace=True)
    

    选项 2:如果您不希望将缺失值归入最常见的类别,那么您可以创建一个名为“其他”的新类别(或与您的变量相关的类似中性类别)

    df['col_name'].fillna('Other',inplace=True)
    

    这两种方法都会估算您缺失的分类值,然后您就可以对它们进行 OneHotEncode。

    【讨论】:

      猜你喜欢
      • 2020-12-27
      • 2020-02-29
      • 2011-02-19
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 2021-01-26
      相关资源
      最近更新 更多