gpt4 book ai didi

python - 使用 .corr 获取两列之间的相关性

转载 作者:IT老高 更新时间:2023-10-28 21:11:34 27 4
gpt4 key购买 nike

我有以下 pandas 数据框 Top15: enter image description here

我创建了一个列来估计每人可引用文档的数量:

Top15['PopEst'] = Top15['Energy Supply'] / Top15['Energy Supply per Capita']
Top15['Citable docs per Capita'] = Top15['Citable documents'] / Top15['PopEst']

我想知道人均可引用文献数量与人均能源供应量之间的相关性。所以我使用了 .corr() 方法( PIL 逊相关性):

data = Top15[['Citable docs per Capita','Energy Supply per Capita']]
correlation = data.corr(method='pearson')

我想返回一个数字,但结果是: enter image description here

最佳答案

没有实际数据很难回答这个问题,但我猜你正在寻找这样的东西:

Top15['Citable docs per Capita'].corr(Top15['Energy Supply per Capita'])

That calculates the correlation between your two columns 'Citable docs per Capita''Energy Supply per Capita'

举个例子:

import pandas as pd

df = pd.DataFrame({'A': range(4), 'B': [2*i for i in range(4)]})

A B
0 0 0
1 1 2
2 2 4
3 3 6

然后

df['A'].corr(df['B'])

按预期给出 1

现在,如果你改变一个值,例如

df.loc[2, 'B'] = 4.5

A B
0 0 0.0
1 1 2.0
2 2 4.5
3 3 6.0

命令

df['A'].corr(df['B'])

返回

0.99586

正如预期的那样,它仍然接近 1。

如果您将 .corr 直接应用于您的数据框,则 it will return all pairwise correlations between your columns ;这就是为什么你在矩阵的对角线观察到 1s (每一列都与自身完全相关)。

df.corr()

因此会返回

          A         B
A 1.000000 0.995862
B 0.995862 1.000000

在您显示的图形中,仅表示相关矩阵的左上角(我假设)。

在某些情况下,您的解决方案中可能会出现 NaN - 以 this post 为例。

如果你想过滤高于/低于某个阈值的条目,你可以检查 this question 。如果要绘制相关系数的热图,可以检查 this answer,如果遇到重叠轴标签的问题,请检查 the following post

关于python - 使用 .corr 获取两列之间的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42579908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com