如何从数据帧返回相关值

2024-03-29 16:00:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究一种方法,用于计算数据集中到列的数据之间的相关性。数据集由4列A1、A2、A3和Class构成。我的目标是删除A3,如果A1和;A3大于0.6或如果A1和;A3小于0.6

数据集示例如下所示:

A1,A2,A3,Class
2,0.4631338,1.5,3
8,0.7460648,3.0,3
6,0.264391038,2.5,2
5,0.4406713,2.3,1
2,0.410438159,1.5,3
2,0.302901816,1.5,2
6,0.275869396,2.5,3
8,0.084782428,3.0,3

我在这个项目中使用的python程序是这样编写的

from numpy.core.defchararray import count
import pandas as pd
import numpy as np
import numpy as np

def main():
    s = pd.read_csv('A1-dm.csv')
    print(calculate_correlation(s))

def calculate_correlation(s):
    # if correlation > 0.6 or correlation < 0.6 remove A3
    s = s[['A1','A3']]
    return s.corr()[1,0]

main()

当我运行代码时,出现以下错误:

File "C:\Users\physe\AppData\Roaming\Python\Python36\site-packages\pandas\core\indexes\base.py", line 2897, in get_loc
    raise KeyError(key) from err
KeyError: (1, 0)

我已经审阅了文档。我面临的问题是从.corr()返回的协方差矩阵中选择1,0元素。在此方面的任何帮助都将不胜感激


Tags: 数据fromcoreimportnumpya2pandasdef
3条回答

以下是我的例子:

cor = df.corr()
if cor['A3'] > 0.6:
   train.drop(columns = 'A3', inplace = True)
else:
   pass

尝试:

corr = df.corr()
if corr['A3'].loc['A1']!=0.6:
    df.drop(columns=['A3'], inplace=True)

使用.iloc从协方差矩阵中获取1,0元素

在这里:

def calculate_correlation(s):
    # if correlation > 0.6 or correlation < 0.6 remove A3
    s = s[['A1','A3']]
    return (s.corr().iloc[1,0])

相关问题 更多 >