是否可以在Python中按列而不是按行执行与一个固定序列的运行关联?

是否可以在Python中按列而不是按行执行与一个固定序列的运行关联?,python,pandas,scipy,pearson-correlation,scipy.stats,Python,Pandas,Scipy,Pearson Correlation,Scipy.stats,两个月前,我在这里问了一个问题(),我从一位同事那里得到了很大的帮助 我的目标是在大熊猫中与一个固定序列进行运行关联。这可以通过下面的代码实现,该代码按行运行。然而,我的目标是在专栏中这样做。因此,我想对每一列运行相关性测试,而不是逐行测试相关性。感谢您的帮助 #Method to do running correlation rowwise. import pandas as pd from scipy.stats import pearsonr import numpy as np #

两个月前,我在这里问了一个问题(),我从一位同事那里得到了很大的帮助

我的目标是在大熊猫中与一个固定序列进行运行关联。这可以通过下面的代码实现,该代码按行运行。然而,我的目标是在专栏中这样做。因此,我想对每一列运行相关性测试,而不是逐行测试相关性。感谢您的帮助

#Method to do running correlation rowwise.
import pandas as pd
from scipy.stats import pearsonr 
import numpy as np 

# running correlation, one fixed series (rows)
df1 = pd.DataFrame([1,3,2,4,5,6,3,4,1,2,3,2,2,3,2,5,1,2,1,2,8,8,8,8,8,8,8])
df2 = pd.DataFrame([1,2,3,2])

CORR_VALS = df2[0].values
def get_correlation(vals):
    return pearsonr(vals, CORR_VALS)[0]

df1['correlation'] = df1.rolling(window=len(CORR_VALS)).apply(get_correlation)
然而,我的目标是在专栏中这样做

然后,我的数据将如下所示:

values = {'column1': [7,2,3,1],
        'column2': [1,5,2,3],
        "column3" : [2,5,2,5]
        }

df1 = pd.DataFrame(values)

df2 = pd.DataFrame([2,3,4,3])

print(df1)
   column1  column2  column3
0        7        1        2
1        2        5        5
2        3        2        2
3        1        3        5

print(df2)
   0
0  2
1  3
2  4
3  3
Out[71]: 
          0
0 -0.620920
1  0.239046
2  0.000000
我期望的输出如下所示:

values = {'column1': [7,2,3,1],
        'column2': [1,5,2,3],
        "column3" : [2,5,2,5]
        }

df1 = pd.DataFrame(values)

df2 = pd.DataFrame([2,3,4,3])

print(df1)
   column1  column2  column3
0        7        1        2
1        2        5        5
2        3        2        2
3        1        3        5

print(df2)
   0
0  2
1  3
2  4
3  3
Out[71]: 
          0
0 -0.620920
1  0.239046
2  0.000000

我猜这可能是由科考夫警长做的。但是,长度自然不匹配。在运行代码之前,你能转换数据帧吗?我的头今天不在工作。。那当然行。。但是,关于如何执行与多个列的运行关联,您有什么想法吗?当您通过
axis=1
应用时,它是否有效?