2
one = pd.DataFrame(data=[1,2,3,4,5], index=[1,2,3,4,5])

two = pd.DataFrame(data=[5,4,3,2,1], index=[1,2,3,4,5])

one.corr(two)

float = -1.00 を返す必要があると思いますが、代わりに次のエラーが発生しています。

TypeError: ['pearson'] をブロック値と比較できませんでした

よろしくお願いします。

4

2 に答える 2

7

pandas.DataFrame.corr単一のデータ フレームの列間のペアワイズ相関を計算します。ここで必要なものは次のpandas.DataFrame.corrwithとおりです。

>>> one.corrwith(two)
0   -1
dtype: float64
于 2015-09-11T17:52:57.797 に答える
2

DataFrameで操作する必要があるときに で操作していSeriesます。

In [1]: import pandas as pd

In [2]: one = pd.DataFrame(data=[1,2,3,4,5], index=[1,2,3,4,5])

In [3]: two = pd.DataFrame(data=[5,4,3,2,1], index=[1,2,3,4,5])

In [4]: one
Out[4]:
   0
1  1
2  2
3  3
4  4
5  5

In [5]: two
Out[5]:
   0
1  5
2  4
3  3
4  2
5  1

In [6]: one[0].corr(two[0])
Out[6]: -1.0

なぜ添え字を付けるの[0]ですか? これは の列の名前なので、指定DataFrameしなかったためです。で列を参照すると、1 次元DataFrameの が返されます。Seriesこの関数のドキュメントはこちらです。

于 2015-09-11T17:53:50.643 に答える