Pandas (n).corr()无论数据是什么,都卡在1上?

Pandas (n).corr()无论数据是什么,都卡在1上?,pandas,Pandas,不管我输入了什么数据,我只得到1的系数作为回报 data = {"one":[1, 2, 3, 4, 5, 6, 7, 8]} compute = data["one"].rolling(3).corr() 0 NaN 1 NaN 3 1.0 4 1.0 5 1.0 6 1.0 7 1.0 我试图让它给我滚动相关性,但是我得到的回报表明我不明白这里发生了什么,或者我做错了什么 谢谢你我不知道你想做什么,但是fo

不管我输入了什么数据,我只得到1的系数作为回报

data = {"one":[1, 2, 3, 4, 5, 6, 7, 8]}
compute = data["one"].rolling(3).corr()

0    NaN
1    NaN
3    1.0
4    1.0
5    1.0
6    1.0
7    1.0
我试图让它给我滚动相关性,但是我得到的回报表明我不明白这里发生了什么,或者我做错了什么


谢谢你

我不知道你想做什么,但是
foo.rolling(n).corr()
其中
foo
是一个线性序列,它给出了线性序列与其移位自相关(如此相等的增长率),因此相关性定义为1。你自己看看:

import pandas as pd
d = {"one":[1, 2, 3, 4, 5, 6, 7, 8]}
data=pd.DataFrame(d)
compute = data["one"].rolling(3).corr()
for i in data["one"].rolling(3):
    print(i)
返回:

Name: one, dtype: int64
0    1
1    2
Name: one, dtype: int64
0    1
1    2
2    3
Name: one, dtype: int64
1    2
2    3
3    4
Name: one, dtype: int64
2    3
3    4
4    5
Name: one, dtype: int64
3    4
4    5
5    6
Name: one, dtype: int64
4    5
5    6
6    7
Name: one, dtype: int64
5    6
6    7
7    8
Name: one, dtype: int64

这是不可复制的。您有不同的变量
d
数据
。如果将
data
更改为
d
,则会得到:
AttributeError:'list'对象没有属性“rolling”
,这不是使用
corr()
的方式。这将引发:
TypeError:corr()缺少1个必需的位置参数:“other”
@C8H10N4O2-缺少一行
data=pd.DataFrame(d)
,那么它是可复制的。您可以计算一列的相关性而不产生错误,但它始终是
1.0
(与自身的相关性)。你不需要“其他”。这就是为什么每一行都是
1.0
@carlwalters-我想你需要解释一下你期望的输出。很可能你需要另一种方法@C8H10N4O2是正确的:人们通常不会这样使用
corr
。感谢您对我编辑的d数据的反馈。