【问题标题】:using Imputer in scikit-learn在 scikit-learn 中使用 Imputer
【发布时间】:2016-12-11 18:04:31
【问题描述】:

我需要在 scikit-learn 中使用 Imputer() 用当月的平均值填充缺失的温度值。

首先,我根据月份将数据框分成几组。然后我调用 imputer 函数来计算该组的平均值并填写缺失值。

这是我写的代码,但是没有用:

def impute_missing (data_1_group):
    imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
    imp.fit(data_1_group)
    data_1_group=imp.transform(data_1_group['datetime'])
    return(data_1_group)

for data_1_group in data_1.groupby(pd.TimeGrouper("M")):
    impute_missing(data_1_group)

有什么建议吗?

【问题讨论】:

  • 这是我写的代码,但它不起作用。它怎么不起作用?确切的错误是什么?
  • 这是我得到的 TypeError: float() argument must be a string or a number
  • 现在我把它改成:grouped = data_1.groupby(pd.TimeGrouper("M")) f = lambda x: x.fillna(x.mean()) translate = grouped['temperature '].transform(f) 我得到 TypeError: cannot concatenate 'str' and 'int' objects
  • 所以这个问题真的不是关于 Imputer,而是关于 groupby 方法?

标签: python scikit-learn missing-data imputation


【解决方案1】:

试试这个小改变

imp=imp.fit(data_1_group['datetime']) data_1_group=imp.transform(data_1_group['datetime'])

虽然我自己是 scikit 的新手,但我推荐对我有用的解决方案。这是因为

1) imp 对象需要覆盖以适应,如第一行所示

2) 它需要拟合和估算相同的数据集,在这种情况下似乎是 data_1_group['datetime']

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2016-12-18
    • 2020-07-01
    • 2019-12-02
    • 2018-05-03
    • 2018-11-21
    • 1970-01-01
    • 2021-07-14
    • 2014-07-07
    • 2021-02-02
    相关资源
    最近更新 更多