在使用线性回归预测客户价值时,月消费额有缺失数据,下面哪个python代码片段对其使用均值填补操作?
A. data_raw['avg_exp']=data_raw['avg_exp'].fillna(value=data_raw['avg_exp'].median())
B. data_raw['avg_exp'].replace(np.nan, data_raw['avg_exp'].mean(), inplace=True)
C. data_raw.avg_exp = data_raw.avg_exp.fillna(data_raw.avg_exp.mode()[0])
D. data_raw.loc[:,'avg_exp']=data_raw['avg_exp'].apply(lambda x: x.fillna(x.mean()))
参考答案: B
解析:A选项错误,因为它使用了中位数(median)而不是平均值(mean)来填充缺失值。
B选项正确,它等效于题干中的代码,使用了平均值(mean)来填充缺失值,而且也使用了inplace=True来直接在原数据上进行修改。
C选项错误,因为它使用了众数(mode)而不是平均值(mean)来填充缺失值。
D选项错误,因为apply方法并不是用来填充缺失值的,且该选项中的lambda函数使用错误,应该是在对每个元素应用函数,而不是整个Series的平均值。此外,x.fillna(x.mean())中的x应该是一个元素值,而不是一个Series对象。