首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫DataFrame矢量化解子集的迭代拟合回归线?

熊猫DataFrame矢量化解子集的迭代拟合回归线?
EN

Stack Overflow用户
提问于 2018-10-18 16:05:33
回答 1查看 452关注 0票数 0

我试图聚合熊猫DataFrame,并创建两个新的列,这将是一个斜率和拦截从一个简单的线性回归拟合。

虚拟数据集如下所示:

代码语言:javascript
复制
CustomerID   Month  Value
a                1     10
a                2     20
a                3     20
b                1     30
b                2     40
c                1     80
c                2     90

我希望输出看起来像这样--这将使Value相对于Montheach CustomerID倒退。

代码语言:javascript
复制
CustomerID    Slope   Intercept
a              0.30          10
b              0.20          30
c              0.12          80

我知道我可以运行一个循环,然后对每个customerID运行线性回归模型,但是我的数据集是巨大的,我需要一个矢量化的方法。我试图通过传递线性回归函数来使用groupbyapply,但没有找到可行的解决方案。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-10-18 16:11:51

通过将scpiygroupby结合使用,这里我使用的是for循环而不是应用,因为applyapply循环慢

代码语言:javascript
复制
from scipy import stats

pd.DataFrame.from_dict({y:stats.linregress(x['Month'],x['Value'])[:2] for y, x in df.groupby('CustomerID')},'index').\
     rename(columns={0:'Slope',1:'Intercept'})
Out[798]: 
   Slope  Intercept
a    5.0   6.666667
b   10.0  20.000000
c   10.0  70.000000
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52878217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档