首页 > 解决方案 > 2个不同长度的熊猫列之间的滚动皮尔逊相关性

问题描述

请问如何计算2个熊猫列之间的滚动皮尔逊相关性?

如下图所示,我有 A 列和 B 列,我想得到列结果。

在此处输入图像描述

标签: pythonpandasnumpy

解决方案


import pandas as pd

d = ({             
   'A' : [1,2,3,4,5,6,7,8,9],                                                      
   'B' : [2,4,6,8,6,4,2,1,4],                                                               
    })

df = pd.DataFrame(data=d)

df['corr'] = df.index.map(lambda x: df['A'].corr(df.loc[:x, 'B']))
print(df)

   A  B      corr
0  1  2       NaN
1  2  4  1.000000
2  3  6  1.000000
3  4  8  1.000000
4  5  6  0.832050
5  6  4  0.458682
6  7  2  0.000000
7  8  1 -0.301687
8  9  4 -0.262461

推荐阅读