データフレームには、日付で索引付けされた500列のデータフレームと4年間のデータがあります。インデックスごとのベクトル行の計算相関データフレーム
|日付| | AAL | AAP | AAPL | ABC ......
| 1/2/2004 | 18.442521 | 25.954398 | 1.38449 | 11.528444 ......
| 1/5/2004 | 18.922795 | 25.718507 | 1.442394 | 11.919131 ...
| 1/6/2004 19.518334 | 26.177538 | 1.437189 | 11.870028 ....
。 。等...
私は、各行のように、毎日のピアソン相関行列を計算したいと思います。私は、Rで読むことができる最もスペース効率のよい方法で、日付でマトリックスを保存したいと思います。(今、私の目標は、インデックスの日付別に、Excelで提案しています)。
私はいくつか試しました私はcorr()をdf.groupbyに適用することができなかったので、これは最も有望なようでした。
しかし、このメソッドは空のデータフレームを返しました。 私は反復を伴わないメソッドを探しています。
def do_Corr(df_group):
"""Apply the function to each group in the data and return one result."""
X = df_group.corr()
return X
df.groupby([df.index.year,df.index.month,df.index.day]).apply(do_Corr).dropna()
申し訳ありませんが、どのような種類の相関行列を生成したいのか分かりません。 「私は行列を日付で保存したい」とはどういう意味ですか?あなたは各日付のための1つの行列をしたいですか?はいの場合、ベクターとは何ですか? (もしあなたが日付を修正したら、あなたはただ1つの行しか持っていませんか?)もっと具体的な説明を教えてください。非常に短いバージョンのデータフレームと実行したい計算(おそらくループなどで、われわれが目標を理解できるようにする)。 –
はい、日付ごとに1つのマトリックス。ベクトルは1行になります。例えば、1/4/4(18.442521,25954398,1.34444,11.528444、...)で、各値は異なる株価に対応します。 質問にはすでにデータフレームの非常に短いバージョンがあります。 –
1つの行は1つのベクトルです。相関を計算するには、2つのベクトルが必要です。相関行列を計算するには、いくつかのベクトルが必要です。だから私はまだ何を計算しようとしているのか理解していない。 –