我试图将linregress
(scipy.stats
)用于一个数据帧的2列(都有7行),但我总是遇到这样的消息:
slope, intercept, r_value, p_value, std_err=linregress( sma5_slope[stocks],sma5_slope['counter'])
File "/usr/lib/python3.6/site-packages/scipy/stats/_stats_mstats_common.py", line 93, in linregress
ssxm, ssxym, ssyxm, ssym = np.cov(x, y, bias=1).flat
File "/usr/lib/python3.6/site-packages/numpy/lib/function_base.py", line 3044, in cov
X = np.concatenate((X, y), axis=0)
ValueError: all the input array dimensions except for the concatenation axis must match exactly
我有一个熊猫数据框sma5
,只有一个数据列和索引(=date)。
我试图计算最后7行的斜率,因此我用最后7行创建了一个新的df:
添加计数器:
sma5_slope['counter'] = range(len(sma5_slope))
sma5_坡度如下:
TSLA counter
2018-04-12 297.734 0
2018-04-13 297.942 1
2018-04-16 298.252 2
2018-04-17 294.850 3
2018-04-18 293.334 4
2018-04-19 294.534 5
2018-04-20 293.130 6
然后我将sma5_slope
的2列传递给linregress
:
slope, intercept, r_value, p_value, std_err=linregress( sma5_slope['counter'], sma5_slope[stocks])
(我循环几个元素,stocks
是当前符号。在
你能指出我的错误在哪里吗?:)
我以为X
和{
错误消息指示您的2系列具有不同的长度。在
你可以试试:
您可以通过打印以下内容进一步确保:
^{pr2}$相关问题 更多 >
编程相关推荐