python中corr函数错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中corr函数错误相关的知识,希望对你有一定的参考价值。
参考技术A python中corr函数错误原因,在Python中,所有代码都是通过正确的空格排列的。所以,无论是多出来空格,还是缺少空格,整个代码都不会运行,并且仅返回一个错误函数。python - 无法使 corr 工作
【中文标题】python - 无法使 corr 工作【英文标题】:python - cannot make corr work 【发布时间】:2017-03-20 02:20:27 【问题描述】:我正在努力完成一个简单的关联。我已经尝试了类似问题下的所有建议。
以下是代码的相关部分、我所做的各种尝试及其结果。
import numpy as np
import pandas as pd
try01 = data[['ESA Index_close_px', 'CCMP Index_close_px' ]].corr(method='pearson')
print (try01)
输出:
Empty DataFrame
Columns: []
Index: []
try04 = data['ESA Index_close_px'][5:50].corr(data['CCMP Index_close_px'][5:50])
print (try04)
输出:
**AttributeError: 'float' object has no attribute 'sqrt'**
使用 numpy
>try05 = np.corrcoef(data['ESA Index_close_px'],data['CCMP Index_close_px'])
print (try05)
输出:
AttributeError: 'float' object has no attribute 'sqrt'
将列转换为列表
ESA_Index_close_px_list = list()
start_value = 1
end_value = len (data['ESA Index_close_px']) +1
for items in data['ESA Index_close_px']:
ESA_Index_close_px_list.append(items)
start_value = start_value+1
if start_value == end_value:
break
else:
continue
CCMP_Index_close_px_list = list()
start_value = 1
end_value = len (data['CCMP Index_close_px']) +1
for items in data['CCMP Index_close_px']:
CCMP_Index_close_px_list.append(items)
start_value = start_value+1
if start_value == end_value:
break
else:
continue
try06 = np.corrcoef(['ESA_Index_close_px_list','CCMP_Index_close_px_list'])
print (try06)
输出:
****TypeError: cannot perform reduce with flexible type****
也尝试了 .astype 但没有任何区别。
data['ESA Index_close_px'].astype(float)
data['CCMP Index_close_px'].astype(float)
使用 Python 3.5、pandas 0.18.1 和 numpy 1.11.1
非常感谢任何建议。
**编辑1:*
数据来自 Excel 电子表格
data = pd.read_excel('C:\\Users\\Ako\\Desktop\\ako_files\\for_corr_tool.xlsx')
在关联尝试之前,只有列重命名和
data = data.drop(data.index[0])
去掉一行
关于类型:
print (type (data['ESA Index_close_px']))
print (type (data['ESA Index_close_px'][1]))
输出:
**编辑2* 部分数据:
print (data['ESA Index_close_px'][1:10])
print (data['CCMP Index_close_px'][1:10])
输出:
2 2137
3 2138
4 2132
5 2123
6 2127
7 2126.25
8 2131.5
9 2134.5
10 2159
Name: ESA Index_close_px, dtype: object
2 5241.83
3 5246.41
4 5243.84
5 5199.82
6 5214.16
7 5213.33
8 5239.02
9 5246.79
10 5328.67
Name: CCMP Index_close_px, dtype: object
【问题讨论】:
你能发布一些你的输入数据吗? 我们需要看看你是如何创建DataFramedata
的。至少,我们需要更多地了解它,比如data.dtypes
。我无法重现您在前三个示例中展示的内容。
当然:data = pd.read_excel('C:\\Users\\Ako\\Desktop\\ako_files\\for_corr_tool.xlsx')
它来自关联尝试之前的 Excel 电子表格,只有列重命名和 data = data.drop(data.index[0])
删除关于类型的一行:print (type (data['ESA Index_close_px']))
@987654341 @ out: print (type (data['ESA Index_close_px']))
和 print (type (data['ESA Index_close_px'][1]))
我得到了 float 但是 print (data['ESA Index_close_px'][1:10])
它说 dtype object
【参考方案1】:
嗯,我今天也遇到了同样的问题。
尝试使用.astype('float64')
帮助使类型正确。data['ESA Index_close_px'][5:50].astype('float64').corr(data['CCMP Index_close_px'][5:50].astype('float64'))
这对我很有效。希望对你也有帮助。
【讨论】:
【参考方案2】:你可以尝试如下:
Top15['Citable docs per capita']=(Top15['Citable docs per capita']*100000)
Top15['Citable docs per capita'].astype('int').corr(Top15['Energy Supply per Capita'].astype('int'))
它对我有用。
【讨论】:
以上是关于python中corr函数错误的主要内容,如果未能解决你的问题,请参考以下文章
R语言psych包的corr.test函数计算相关性并给出所有相关性的显著性(Correlation matrix and tests of significance via corr.test())