我正在研究一种计算数据集中两列数据之间相关性的方法。数据集由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)
我看了here的文档。我面临的问题是从.corr()返回的协方差矩阵中选择1,0元素。
3条答案
按热度按时间ve7v8dk21#
下面是我的例子:
7bsow1i62#
尝试:
ibrsph3r3#
使用.iloc从协方差矩阵中获取1,0元素。
这里: