【发布时间】:2018-02-25 13:09:15
【问题描述】:
我的数据框:
from random import random, randint
from pandas import DataFrame
t = DataFrame({"metasearch":["A","B","A","B","A","B","A","B"],
"market":["A","B","A","B","A","B","A","B"],
"bid":[random() for i in range(8)],
"clicks": [randint(0,10) for i in range(8)],
"country_code":["A","A","A","A","A","B","A","B"]})
我想为每个market 拟合线性回归,所以我:
1) 组 df - groups = t.groupby(by="market")
2) 准备函数以在组上拟合模型 -
from sklearn.linear_model import LinearRegression
def group_fitter(group):
lr = LinearRegression()
X = group["bid"].fillna(0).values.reshape(-1,1)
y = group["clicks"].fillna(0)
lr.fit(X, y)
return lr.coef_[0] # THIS IS A SCALAR
3) 以market 作为索引,coef 作为值创建一个新系列:
s = groups.transform(group_fitter)
但第三步失败: KeyError: ('bid_cpc', 'occured at index bid')
【问题讨论】: