我有一个称为价格的功能,其中包含一些缺失值。我还有另一列“积分”,它没有缺失的价值,但与价格高度相关。我想用基于积分的平均价格来填补价格的缺失值。例如,如果记录的点值为16,则应该用所有点值为16的记录的平均价格来填充价格的缺失值。我正在使用Pandas。我尝试了scikit学习库,但它没有此类功能。请帮助
答案 0 :(得分:0)
这是一个可能对您有所帮助的示例。仅基于非缺失数据,它使用线性回归从各个点预测价格。
import numpy as np
from sklearn.linear_model import LinearRegression
myData=pd.DataFrame({'price':[10,20,30,40,50,None,70], 'points':[12,18,22,42,53,62,89]})
model = LinearRegression()
y = myData[~myData['price'].isnull()]['price']
x = np.array(myData[~myData['price'].isnull()]['points']).reshape((-1, 1))
model.fit(x,y)
myData['price'][myData['price'].isnull()] = model.predict(np.array(myData[myData['price'].isnull()]['points']).reshape((-1, 1)))