如何在 Python 中导入 Excel 文件列并找到它们之间的相关系数?
Posted
技术标签:
【中文标题】如何在 Python 中导入 Excel 文件列并找到它们之间的相关系数?【英文标题】:How can I import Excel file columns in Python and find correlation coefficient between them? 【发布时间】:2020-04-02 10:46:53 【问题描述】:我在 Excel 文件中有很多数字列(例如,AAA、BBB、CCC、DDD 和 EEE)。 我需要将这些列导入 Python 并找到每 2 列之间的相关系数。 仅显示相关系数从 +0.5 到 +1 和 -0.5 到 -1 的列。
import pandas as pd
data = pd.read_excel('SO.xlsx')
df = pd.DataFrame(data)
df.corr()
【问题讨论】:
请问你能告诉我们你到目前为止尝试了什么吗? meta.***.com/questions/284236/… 如果你想把它分成两部分——我会说使用 pandas 库来导入你的数据,然后这里有一篇非常有用的文章告诉你如何使用 numpy 计算相关性:machinelearningmastery.com/… 【参考方案1】:这是一个非常简单的解决方案;我没有你的数据,所以我用我找到的样本数据完成了它。我们开始:
import pandas as pd
data = pd.read_excel('https://global.oup.com/us/companion.websites/fdscontent/uscompanion/us/static/companion.websites/9780199734177/Example_1_rawdata.xls')
df = pd.DataFrame(data)
df.corr()
输出如下:
Hugs Comps PerAd SocAc ProAd ComSt PhyHlp Encour Tutor
Hugs 1.000000 0.666100 0.149995 0.616721 0.541132 0.653129 0.473344 0.549393 0.565627
Comps 0.666100 1.000000 0.247194 0.575720 0.509667 0.642069 0.424696 0.543826 0.487571
PerAd 0.149995 0.247194 1.000000 0.222337 0.081263 0.163510 0.090505 0.181000 0.120080
SocAc 0.616721 0.575720 0.222337 1.000000 0.409031 0.559579 0.338293 0.447923 0.348733
ProAd 0.541132 0.509667 0.081263 0.409031 1.000000 0.666905 0.733851 0.464976 0.754339
ComSt 0.653129 0.642069 0.163510 0.559579 0.666905 1.000000 0.595900 0.540038 0.671789
PhyHlp 0.473344 0.424696 0.090505 0.338293 0.733851 0.595900 1.000000 0.432037 0.717585
Encour 0.549393 0.543826 0.181000 0.447923 0.464976 0.540038 0.432037 1.000000 0.412042
Tutor 0.565627 0.487571 0.120080 0.348733 0.754339 0.671789 0.717585 0.412042 1.000000
如果您添加以下内容,它将用空值替换所有 Pearson 相关性低于 0.5 的值:
df[df > 0.5]
【讨论】:
非常感谢@Plato77,我将不得不解决这个问题并恢复。 如何将“df[df > 0.5]”和“df[df以上是关于如何在 Python 中导入 Excel 文件列并找到它们之间的相关系数?的主要内容,如果未能解决你的问题,请参考以下文章
python 使用Mac在Pandas(Python)中导入Excel文件
如何在 Databricks pyspark 中导入 Excel 文件
如何在 Pandas Dataframe 中导入多个 excel 文件
我已经在 python 中导入了一个 excel 文件,我正在尝试将第 7 行作为起始列。我需要隐藏前 6 行我该怎么做? [复制]