![](/img/trans.png)
[英]How do I generate the Correlation Coefficient of two columns of a dataframe as a new column variable in the same dataframe?
[英]Is there a way to do pandas correlation between multiple columns and create new column with result on the same dataframe?
我正在設置一個熊貓數據df1
並基於Excel工作表中的公式創建新列。 我需要使用pd.corr
函數查找多個列之間的相關性,並使用結果在同一數據幀df1
上創建一個新列。
樣本df1
數據:
trc_2017 trc_2016 trc_2015 tsr_2017 tsr_2016 tsr_2015 roe
0.21 1.23 2.54 9.42 6.14 -0.01 2.35
1.02 -3.21 0.12 9.32 5.24 6.90 3.29
-3.02 0.12 1.32 5.02 2.02 32.10 4.32
嘗試了以下解決方案:
df['corr'] = df[['trc_2017', 'trc_2016', 'trc_2015']].corr(df[['tsr_2017', 'tsr_2016', 'tsr_2015']])
上面的解決方案,但我得到錯誤:
ValueError: The truth value of a DataFrame is ambiguous.
第二種解決方案:
df['corr'] = df[['trc_2017', 'trc_2016', 'trc_2015']].corrwith(df[['tsr_2017', 'tsr_2016', 'tsr_2015']])
給出df['corr']
所有值為NaN
預期成績:
trc_2017 trc_2016 trc_2015 tsr_2017 tsr_2016 tsr_2015 roe corr
0.21 1.23 2.54 9.42 6.14 -0.01 2.35 0.11
1.02 -3.21 0.12 9.32 5.24 6.90 3.29 3.21
-3.02 0.12 1.32 5.02 2.02 32.10 4.32 0.12
使用熊貓查找corr
列的相關性的最佳方法是什么?
使用corrwith
與rename
為兩個子集相同的列名DataFrame
S:
c1 = ['trc_2017', 'trc_2016', 'trc_2015']
c2 = ['tsr_2017', 'tsr_2016', 'tsr_2015']
df['corr'] = df[c1].corrwith(df[c2].rename(columns=dict(zip(c2, c1))), axis=1)
print (df)
trc_2017 trc_2016 trc_2015 tsr_2017 tsr_2016 tsr_2015 roe corr
0 0.21 1.23 2.54 9.42 6.14 -0.01 2.35 -0.994782
1 1.02 -3.21 0.12 9.32 5.24 6.90 3.29 0.910052
2 -3.02 0.12 1.32 5.02 2.02 32.10 4.32 0.647252
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.