我目前正在处理一个包含不同音乐艺术家评级的CSV,我正在转变为使用熊猫进行关联的DataFrame。问题是,当我转置DataFrame并在其上使用.corr()
函数时,它会返回一个空的DataFrame,并且转置的相关性就是我所需要的。有什么想法,为什么它这样做?这是我的代码:
import pandas as pd
musicRatingsFile = "https://raw.githubusercontent.com/aportell/machine-learning/master/MusicRatings.csv"
musicRatingsData = pd.read_csv(musicRatingsFile)
df = DataFrame(musicRatingsData)
df2 = df.dropna()
df3 = df2.transpose()
df3.corr()
答案 0 :(得分:2)
您有一个由字符串组成的列(您可能希望该列作为索引),并且您还有两列被视为对象,即使它们是数字。你可以用以下方法解决这个问题:
cor = df2.set_index('student').astype('float').T.corr()
cor.head()
Out:
student Colton Bryce Mikaela Goldrich Joe Goulet \
student
Colton 1.000000 -0.467859 -0.083099 -0.195272
Bryce -0.467859 1.000000 0.008893 0.391781
Mikaela Goldrich -0.083099 0.008893 1.000000 0.341112
Joe Goulet -0.195272 0.391781 0.341112 1.000000
Trevor Martineau 0.174185 0.444854 -0.175762 0.266465
.T
这里采用转置。