大佬教程收集整理的这篇文章主要介绍了使用 statsmodels 和 groupby,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import pandas as pd
import statsmodels.formula.API as sm
df = pd.DataFrame({'Y' : [1,2,3,4,5,6,7],'X' : [2,2],'group' : ['a','a','b','b']})
df
Out[99]:
Y X group
0 1 2 a
1 2 3 a
2 3 4 a
3 4 5 a
4 5 6 b
5 6 3 b
6 7 2 b
我想按组运行回归。我只找到了非常旧的答案或带有循环的解决方案。我只是想知道为什么很简单:
df.groupby('group').agg(lambda x: sm.ols(formula = 'Y ~ X',data = X))
PatsyError: Error evaluaTing factor: nameError: name 'X' is not defined
Y ~ X
不起作用。我们可以使用最新版本的 Pandas (1.2.3) 做得更好吗? 谢谢!
你需要使用apply
函数-
df.groupby('group').apply(lambda x: sm.ols(formula = 'Y ~ X',data = X))
输出
group
a <statsmodels.regression.linear_model.oLS objec...
b <statsmodels.regression.linear_model.oLS objec...
dtype: object
您现在拥有适合每个组的模型并准备就绪。
以上是大佬教程为你收集整理的使用 statsmodels 和 groupby全部内容,希望文章能够帮你解决使用 statsmodels 和 groupby所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。