当前位置: 首页 > 面试题库 >

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

席言
2023-03-14
问题内容

我有以下pandas数据框Top15:在此处输入图片说明

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

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

我想知道人均引用文件数量与人均能源供应之间的相关性。因此,我使用该.corr()方法
(皮尔逊相关性):

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

问题答案:

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

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

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

To give an example:

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

Then

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

gives 1 as expected.

Now, if you change a value, e.g.

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

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

the command

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

returns

0.99586

which is still close to 1, as expected.

If you apply .corr directly to your dataframe, it will return all pairwise
correlations between your columns; that’s why you then
observe 1s at the diagonal of your matrix (each column is perfectly
correlated with itself).

df.corr()

will therefore return

          A         B
A  1.000000  0.995862
B  0.995862  1.000000

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

有可能的情况下,你在哪里得到NaN您的解决方案的S -检查这个职位的一个例子。

如果要过滤高于或低于某个阈值的条目,可以检查此问题。如果要绘制相关
系数的热图,则可以检查该答案,如果然后遇到轴标签重叠的问题,请检查以下文章。



 类似资料:
  • 我正在寻找一种方法来声明“2个依赖项之间的依赖项”。 例如,在我的模块中,我ivy.xml以下行: 我的问题是,日志经典 1.0.13 依赖于 slf4j-api 1.7.5,而我的模块依赖于 1.6.6(slf4japiversion 的值)。 我无法更改 slf4japiversion,但将来它可以由其他人升级。 有没有办法声明对logback的依赖关系,以检索与我的slf4j api版本兼容

  • 返回两个日期之间相差的天数。 计算 Date 对象之间的差异(以天为单位)。 const getDaysDiffBetweenDates = (dateInitial, dateFinal) => (dateFinal - dateInitial) / (1000 * 3600 * 24); getDaysDiffBetweenDates(new Date('2017-12-13'), ne

  • 我的桌子有这样的结构 如何在mysql中获取上述数据的两个日期之间的事件(日期比较与年份无关)。例如,如果start_date是2014-05-01,结束日期是2014-05-20,则输出应该是 更新:如果同一个人的结婚日期和出生日期都在提供的日期范围内,则输出应包含该人的两列 (抱歉我的英语不好)

  • 问题内容: 使用标准的mysql函数可以编写查询,该查询将返回两个日期之间的天数列表。 例如,给定2009-01-01和2009-01-13,它将返回一个具有以下值的列表: 编辑:看来我还不清楚。我要生成此列表。我在数据库中存储了值(按日期时间),但希望将它们在左外部联接中汇总到上述日期列表中(我希望这种联接的某些右侧在几天内会为null并将对此进行处理) )。 问题答案: 我将使用此存储过程将所

  • 如果我们有数据集: 如何创建y轴表示“a”,x轴表示“b”的相关矩阵? 目的是查看两个数据集的匹配列之间的相关性,如下所示: