Подтвердить что ты не робот

Python pandas пустая матрица корреляции

Я запускаю Python 2.7.6, pandas 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'
4b9b3361

Ответ 1

Как упоминал Джефф в комментариях, проблема возникла из-за того, что мои столбцы имеют тип object dtype. Для дальнейшего использования, даже если объект выглядит числовым, проверьте dtype и убедитесь, что он является числовым (например, do foo.astype(float)) перед вычислением корреляционной матрицы.