by_year.apply(regress,'AAPL',['SPX'])
import statsmodels.api as sm
def regress(data,yvar,xvars):
Y=data[yvar]
X=data[xvars]
X['intercept']=1
result=sm.OLS(Y,X).fit()
return result.params
by_year是pandas groupby对象,我不知道'AAPL'和['SPX']之间的区别为什么对SPX使用[]
最佳答案
一般来说,data['SPX']
返回一个 Series
,而 data[['SPX']]
返回一个 数据框
。
特别针对您的情况,使用 ['SPX']
更有意义,因为您的 regress
函数尝试添加名为 intercept
的列> 到 X
变量。为了确保您实际上可以将该列添加到变量 X
中,变量 X
需要是 DataFrame
,而不是 系列
。
底线是在这种特殊情况下存在差异。
我希望这会有所帮助。
关于python - python pandas groupby 中的 'AAPL' 和 ['AAPL' ] 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43220474/