如何解决即使在列中找到与指定列相关的最高相关变量
正如标题所示,我有一个名为df的数据框。
给出一个变量(df的指定列),我想找到与该变量具有最高相关值的列。
这是我到目前为止尝试过的内容:
def highest_correlated(df,column):
sol = -1
for col in df.columns:
while col != column:
corr = df[column].corr(df[col])
if corr>sol:
sol = corr
return sol
问题是这花费了太多时间,最后我没有得到任何结果,任何人都可以帮助我找到解决方案?
解决方法
展示概念的小例子
df = pd.DataFrame(np.random.random((5,5)),columns=list('abcde'))
df
a b c d e
0 0.813973 0.948999 0.291432 0.081816 0.590892
1 0.117661 0.371609 0.420920 0.007232 0.596047
2 0.285615 0.840326 0.261307 0.839936 0.050935
3 0.215191 0.236140 0.588104 0.718885 0.047986
4 0.363681 0.280523 0.249036 0.712143 0.463029
现在找到相关性最高的列
df.corr()['a']
a 1.000000
b 0.686173
c -0.464374
d -0.297666
e 0.385181
除了“ a”列,我们得到
df.corr()['a'][1:].abs().idxmax()
'b'
如果您不能方便地排列列
df.corr()['a'].drop('a').abs().idxmax()
'b'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。