为什么dataframe明明有数据,求相关系数返回的确实空矩阵呢?
原因就是dataframe中的数据类型不是数值型,做一个简单操作就可以了:
方法一:利用apply()方法
dataframe = dataframe.apply(lambda x:x.astype(float))
方法二:astypes()方法
df[A].astypes(int)#将A列数据类型转换为int
方法三:to_numeric()方法
data[‘note_n’] = pd.to_numeric(data[‘note_n’])
方法四:利用pd.DataFrame()方法
traindata=pd.DataFrame(traindata,dtype=np.float)
附:
dataframe中求得的几种相关系数:
df.corr() # 默认是pearson相关系数
df.corr('kendall') # Kendall Tau相关系数
df.corr('spearman') # spearman秩相关