gpt4 book ai didi

python - 在pandas df python中滚动计算坡度

转载 作者:行者123 更新时间:2023-12-02 08:28:20 24 4
gpt4 key购买 nike

我有一个数据框:

            CAT         ^GSPC
Date
2012-01-06 80.435059 1277.810059
2012-01-09 81.560600 1280.699951
2012-01-10 83.962914 1292.079956
....
2017-09-16 144.56653 2230.567646

我想找到每个时期过去 63 天的股票/和 S&P 指数的斜率。我已经尝试过:

x = 0
temp_dct = {}
for date in df.index:
x += 1
max(x, (len(df.index)-64))
temp_dct[str(date)] = np.polyfit(df['^GSPC'][0+x:63+x].values,
df['CAT'][0+x:63+x].values,
1)[0]

但是我觉得这非常“unpythonic”,但是我在将滚动/移位功能集成到其中时遇到了麻烦。

我的预期输出是一个名为“Beta”的列,其中包含所有可用日期的 S&P(x 值)和股票(y 值)的斜率

最佳答案

# this will operate on series
def polyf(seri):
return np.polyfit(seri.index.values, seri.values, 1)[0]

# you can store the original index in a column in case you need to reset back to it after fitting
df.index = df['^GSPC']
df['slope'] = df['CAT'].rolling(63, min_periods=2).apply(polyf, raw=False)

运行后,将会有一个新的列存储拟合结果。

关于python - 在pandas df python中滚动计算坡度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46256059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com