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'] をブロック値と比較できませんでした
よろしくお願いします。
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'] をブロック値と比較できませんでした
よろしくお願いします。
pandas.DataFrame.corr
単一のデータ フレームの列間のペアワイズ相関を計算します。ここで必要なものは次のpandas.DataFrame.corrwith
とおりです。
>>> one.corrwith(two)
0 -1
dtype: float64
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
この関数のドキュメントはこちらです。