【问题标题】:How can I replace missing boolean values using python?如何使用 python 替换丢失的布尔值?
【发布时间】:2021-09-27 01:18:51
【问题描述】:

在我的数据集中,其中一列是布尔值,数据集中和其他连续变量列中存在缺失值,这些值已成功替换为平均值。但平均值无法替换缺少的布尔值。那么如何替换这些值呢?

请注意,我的数据集中的布尔值是 1 或 0。

下面是替换连续缺失值的代码:

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer.fit(x)
x = imputer.transform(x)

谢谢

【问题讨论】:

  • 没有单一的策略。
  • 尝试用多数值替换nas。

标签: python scikit-learn missing-data


【解决方案1】:

有几种方法可以解决这个问题。

  1. 如果您负担得起(如果您有足够的数据)排除这些行
  2. 将这些行替换为多数值(与替换为连续值的平均值相同)
  3. 对于时间序列 - 将单元格替换为前后 x 个单元格的平均值,并设置一个高于它的阈值 - 平均值将变为 0,否则,平均值将变为 0

【讨论】:

    【解决方案2】:

    您可以将此布尔变量视为分类特征,然后将SimpleImputermost_frequent 策略一起使用,而不是mean

    你可以这样做:

    from sklearn.impute import SimpleImputer
    import numpy as np
    
    #Create sample data with nans
    X = np.random.randint(2, size=100).reshape(1,-1).astype(float)
    X[0,::4] = np.nan
    
    SimpleImputer(strategy="most_frequent").fit_transform(X)
    

    【讨论】:

      猜你喜欢
      • 2022-08-16
      • 2019-10-08
      • 2011-10-24
      • 1970-01-01
      • 2016-09-08
      • 2020-08-24
      • 1970-01-01
      • 2015-08-28
      • 2014-02-01
      相关资源
      最近更新 更多