Corrwith返回空值

时间:2018-04-02 07:17:46

标签: python pandas

我有两个数据帧,我试图使用每个数据帧的每一行中的值来生成Pearson Correlation Coefficient。

我目前正在使用代码生成具有相关值的新数据框:

Corr_df = df_A.corrwith(df_B, axis = 1)

但是,结果Corr_df仅返回空值。当我可以使用CORREL公式在excel中生成相同的Correlation Coefficient时,为什么Python不会这样做?

df_A的链接是:https://drive.google.com/file/d/1gyBbH2MYQM_oM5wwLIkIoOrSADgooWIu/view?usp=sharing

df_B的链接是:https://drive.google.com/file/d/1lr60I-DLSaiSHVFRebXwxEH1J_ebbzoP/view?usp=sharing

请帮帮我吧!

2 个答案:

答案 0 :(得分:1)

您需要在两个DataFrame中使用相同的列名称:

df_A = pd.read_excel('A.xlsx')
df_B = pd.read_excel('A.xlsx')

df_B.columns = df_A.columns
Corr_df = df_A.corrwith(df_B, axis = 1)

替代:

d = dict(zip(df_A.columns, df_B.columns))
Corr_df = df_A.corrwith(df_B.rename(columns=d), axis = 1)

print (Corr_df.head())
0    1.0
1    1.0
2    1.0
3    1.0
4    1.0
dtype: float64

答案 1 :(得分:0)

corrwith仅适用于相同的列名...否则它将不起作用... pd.corrwith on pandas dataframes with different column names此链接会有所帮助