【发布时间】: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