Error: 'float'对象没有属性'shape'当使用.corr



我有两列从一个数据框,我想得到的相关系数:Df ['a']和Df ['b']大约有15或20行数据。

我将这些赋值给"col1"one_answers";col2"然后试着调用corr方法:

col1 = df['a']
col2 = df['b']
corr = col1.corr(col2,method="pearson")

我得到一个错误:'float'对象没有属性'shape'

如果我导入stats库并尝试:

corr, pval=stats.pearsonr(col1,col2)

我得到一个相关系数。我在第一个问题上做错了什么?

在回答其中一个评论时,我检查了col1和col2的类型,它们都是系列。我认为这会起作用,因为我去了文档中的这个链接:https://pandas.pydata.org/docs/reference/api/pandas.Series.corr.html它没有指示您需要指定这是一个序列而不是一个数据框架。

我还检查了完整数据帧的类型:

print(type(df))

作为数据框架类型返回完整的数据框是21列和一个索引。我只想得到其中两列的相关系数。这里是我得到的数据的一个子集,如果我打印col1和col2:
col1:
国家
印度尼西亚9.3659e-05
日本0.000388417
加拿大0.001638514

名称:a, dtype: object

col2:
国家
印度尼西亚65
日本194
加拿大167

Name: b, dtype: object

是国家指数引起的问题吗?

或者,df是一个级数:

>>> df
a    10.0
b    12.0
dtype: float64

或数据框架的列类型错误:

>>> df
a     b
0  10.0  20.0
1  12.0  22.0
>>> df.dtypes
a    float64
b     object
dtype: object

相关内容

  • 没有找到相关文章

最新更新