微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以用Python以列而不是行的方式与一个固定系列进行关联?

如何解决是否可以用Python以列而不是行的方式与一个固定系列进行关联?

两个月前(Is it possible to do running correlation with one fixed series in Python?),我在这里问了一个问题,我从同一个用户那里得到了很大的帮助。

我的目标是与Pandas中的一个固定序列进行关联。这可以通过下面的代码逐行实现。但是,我的目标是按列进行此操作。因此,我不想为每一行测试相关性,而是要为每列运行一个相关性测试。任何帮助表示赞赏!

#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,1,8,8])
df2 = pd.DataFrame([1,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,1],'column2': [1,3],"column3" : [2,5]
        }

df1 = pd.DataFrame(values)

df2 = pd.DataFrame([2,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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。