我正在运行
Python 2.7.6,大熊猫0.13.1.我无法从DataFrame计算相关矩阵,我不知道为什么.这是我的示例DataFrame:
In [24]: foo Out[24]: A B C 2011-10-12 0.006204908 -0.0009503677 0.003480105 2011-10-13 0.00234903 -0.0005122284 -0.001738786 2011-10-14 0.01045599 0.000346268 0.002378351 2011-10-17 0.003239088 0.001246239 -0.002651856 2011-10-18 0.001717674 -0.0001738079 0.002013923 2011-10-19 0.0001919342 6.399505e-05 -0.001311259 2011-10-20 0.0007430615 0.001186141 0.001919222 2011-10-21 -0.01075129 -0.0015123 0.000807017 2011-10-24 -0.00819597 -0.0005124197 0.003037654 2011-10-25 -0.01604287 0.001157013 -0.001227516 [10 rows x 3 columns]
现在我将尝试计算相关性:
In [27]: foo.corr() Out[27]: Empty DataFrame Columns: [] Index: [] [0 rows x 0 columns]
另一方面,我可以计算每列与每一列的相关性.例如:
In [31]: foo['A'].corr(foo['B']) Out[31]: 0.048578514633405255
任何想法可能导致这个问题?非常感谢.
版本信息
In [34]: import pandas as pd In [35]: pd.__version__ Out[35]: '0.13.1'
解决方法
正如Jeff在评论中提到的,问题是由我的列导致的对象为dtype.为了将来参考,即使对象看起来数字,在计算相关矩阵之前,检查dtype并确保它是数字的(例如,做foo.astype(float)).