Python Pandas pandas 一列与所有列的相关性

Python Pandas pandas correlation one column vs all

我正在尝试获取单个列与数据框的其余数字列之间的相关性,但我被卡住了。

我正在尝试这样做:

corr = IM['imdb_score'].corr(IM)

但是我得到了错误

operands could not be broadcast together with shapes

我认为这是因为我试图找到向量(我的 imdb_score 列)与多列数据帧之间的相关性。

如何解决这个问题?

我想你可以只使用 .corr 其中 然后 select 只是你感兴趣的栏目。

所以,像

IM.corr()['imbd_score']

应该可以。

与其计算所有相关性并保留感兴趣的相关性,不如计算感兴趣相关性的子集在计算上更有效:

import pandas as pd

df = pd.DataFrame()

df['a'] = range(10)
df['b'] = range(10)
df['c'] = range(10)

pd.DataFrame([[c, df['a'].corr(df[c])] for c in df.columns if c!='a'], columns=['var', 'corr'])

最有效的方法是使用corrwith

示例:

df.corrwith(df['A'])

示例数据的设置:

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(10, size=(5, 5)), columns=list('ABCDE'))

#    A  B  C  D  E
# 0  7  2  0  0  0
# 1  4  4  1  7  2
# 2  6  2  0  6  6
# 3  9  8  0  2  1
# 4  6  0  9  7  7

输出:

A    1.000000
B    0.526317
C   -0.209734
D   -0.720400
E   -0.326986
dtype: float64