相关疑难解决方法(0)

pandas.DataFrame corrwith()方法

我最近开始合作pandas.任何人都可以.corrwith()Series和解释我的功能行为的差异DataFrame吗?

假设我有一个DataFrame:

frame = pd.DataFrame(data={'a':[1,2,3], 'b':[-1,-2,-3], 'c':[10, -10, 10]})
Run Code Online (Sandbox Code Playgroud)

我想要计算特征'a'和所有其他特征之间的相关性.我可以通过以下方式完成:

frame.drop(labels='a', axis=1).corrwith(frame['a'])
Run Code Online (Sandbox Code Playgroud)

结果将是:

b   -1.0
c    0.0
Run Code Online (Sandbox Code Playgroud)

但非常相似的代码:

frame.drop(labels='a', axis=1).corrwith(frame[['a']])
Run Code Online (Sandbox Code Playgroud)

生成绝对不同且不可接受的表格:

a   NaN
b   NaN
c   NaN
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:为什么在DataFrame作为第二个参数的情况下我们得到如此奇怪的输出?

python dataframe pandas

7
推荐指数
2
解决办法
1万
查看次数

两个P值的熊猫数据帧的相关矩阵

我从两个数据帧开始使用此函数(请参阅底部)来计算Pearson和Pval,但是我对Pval的结果不满意:似乎有太多的负相关性很重要。

为了与Pearson一起计算Pval,是否有更优雅的方法(如单行代码)?

这两个答案(pandas.DataFrame corrwith()方法)和(一个数据帧与另一个数据帧的相关矩阵)提供了很好的解决方案,但是缺少了P值计算。

这是代码:

def pearson_cross_map(df1, df2):
    """Correlate each Mvar with each Nvar.

    Parameters
    ----------
    df1 : dataframe1
    Shape Mobs X Mvar.

    df2 : dataframe2
    Shape Nobs X Nvar.

    Returns
    -------
    DFcorr, dataframe Mvar x Nvar in which each element is a Pearson 
correlation coefficient.
    DFpval, dataframe Mvar x Nvar in which each element is a P value (one-tailed).

    """

    intersection = (df1.index & df2.index).tolist()
    df1 = df1.convert_objects(convert_numeric=True) 
    df1 = df1.T[intersection].T 
    df1 = …
Run Code Online (Sandbox Code Playgroud)

python matrix correlation dataframe pandas

1
推荐指数
1
解决办法
4916
查看次数

标签 统计

dataframe ×2

pandas ×2

python ×2

correlation ×1

matrix ×1