Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有不同列名的数据帧上的pd.corrwith_Python_Pandas - Fatal编程技术网

Python 具有不同列名的数据帧上的pd.corrwith

Python 具有不同列名的数据帧上的pd.corrwith,python,pandas,Python,Pandas,我想以一种有效的方式得到x1和y中三列中的每一列之间的皮尔逊r 似乎pd.corrwith()只能对具有完全相同列标签的列(例如x和y)进行计算 这似乎有点不切实际,因为我认为计算不同变量之间的相关性是一个常见问题 In [1]: import pandas as pd; import numpy as np In [2]: x = pd.DataFrame(np.random.randn(5,3),columns=['A','B','C']) In [3]: y = pd.DataFram

我想以一种有效的方式得到x1和y中三列中的每一列之间的皮尔逊r

似乎pd.corrwith()只能对具有完全相同列标签的列(例如x和y)进行计算

这似乎有点不切实际,因为我认为计算不同变量之间的相关性是一个常见问题

In [1]: import pandas as pd; import numpy as np

In [2]: x = pd.DataFrame(np.random.randn(5,3),columns=['A','B','C'])

In [3]: y = pd.DataFrame(np.random.randn(5,3),columns=['A','B','C'])

In [4]: x1 = pd.DataFrame(x.ix[:,0])

In [5]: x.corrwith(y)
Out[5]:
A   -0.752631
B   -0.525705
C    0.516071
dtype: float64

In [6]: x1.corrwith(y)
Out[6]:
A   -0.752631
B         NaN
C         NaN
dtype: float64
您可以这样做(使用
np.random.seed(0)
):

要获得此结果,请执行以下操作:

A   -0.509
B    0.041
C   -0.732

您可以使用
DataFrame.corrwith(Series)
而不是
DataFrame.corrwith(DataFrame)
来完成您想要的:

或者,您可以在
x
的每一列和
y
的每一列之间形成相关矩阵,如下所示:

In [214]: pd.expanding_corr(x, y, pairwise=True).iloc[-1, :, :]
Out[214]:
          A         B         C
A  0.347629 -0.480474 -0.729303
B -0.334814  0.778019  0.654583
C -0.453273  0.212057  0.149544

DataFrame.corrwith()
没有
pairwise=True
选项。

pd.expansing\u corr在最新版本中似乎已删除:/
In [203]: x1 = x['A']

In [204]: y.corrwith(x1)
Out[204]:
A    0.347629
B   -0.480474
C   -0.729303
dtype: float64
In [214]: pd.expanding_corr(x, y, pairwise=True).iloc[-1, :, :]
Out[214]:
          A         B         C
A  0.347629 -0.480474 -0.729303
B -0.334814  0.778019  0.654583
C -0.453273  0.212057  0.149544