【问题标题】:Run a basic correlation between two columns of a dataframe在数据框的两列之间运行基本关联
【发布时间】:2016-01-29 22:32:26
【问题描述】:

我正在尝试使用来自指定列的数据从 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应该可以处理小数。

任何解决问题的帮助将不胜感激。

提比略

【问题讨论】:

  • 这两列之间的相关性您期望得到什么?
  • 暂时没有,因为它只是虚拟数据。任何不抛出错误的值都是可以接受的。

标签: python python-2.7 pandas


【解决方案1】:

如果您尝试在两列之间创建相关矩阵,我建议将它们放入同一个数据框中,如下所示:

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

我自己将您的数据加载到 csv 中,并得到了一个全为 1 的 2x2 相关矩阵,这是预期的。

您可以在此处找到有关 pandas 相关性的文档:http://pandas.pydata.org/pandas-docs/stable/computation.html#correlation

【讨论】:

  • 我确实想多了。非常简单的解决方案。感谢您的帮助和未来的参考文档!
猜你喜欢
  • 1970-01-01
  • 2010-11-30
  • 2020-11-25
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多