在数据框中运行基本相关性分析,分析两列之间的关系。

4

我希望能从指定列中提取数据,使用 pandas 数据框架生成相关矩阵。

以下是我的 csv 数据:

col0,col1,col2,col3,col4
122468.9071,1417464.203,3546600,151804924,10839476
14691.1139,170036.0407,103847,19208604,2365065

这是我创建的两个数据框:

df1 = pd.read_csv('c:/temp/test_1.csv', usecols=[0])
df2 = pd.read_csv('c:/temp/test_1.csv', usecols=[1])

我尝试使用corr和corrwith函数,但出现了以下错误:
Corr Function:

print df1.corr(df2)

Result: 

Error: Could not compare ['pearson'] with block values

Corrwith:

print df1.corrwith(df2)

Result:    

col0   NaN
col1   NaN
dtype: float64

正如您所看到的,数据集中没有空值,而float64应该能够处理小数。

如果有任何解决方案的帮助,将不胜感激。

Tiberius


你期望这两列之间的相关性能得到什么? - Anton Protopopov
现在还没有任何数据,因为这只是虚拟数据。任何不会引发错误的值都是可以接受的。 - Tiberius
1个回答

5
如果您想在两个列之间创建相关矩阵,我建议将它们带入同一个数据框中,像这样:

df = pd.read_csv('c:/temp/test_1.csv', usecols=[0,1])
df.corr()

我将您的数据加载到了csv文件中,并得到了一个2x2的相关矩阵,所有元素都是1,这是符合预期的。
您可以在这里找到有关pandas相关性的文档:http://pandas.pydata.org/pandas-docs/stable/computation.html#correlation

1
我确实把那个问题想复杂了。惊人简单的解决方案。感谢您的帮助和提供未来参考文档的支持!! - Tiberius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接