2016-08-05 4 views
2

私はFama FrenchとYahooからPandasを介してインポートされた2つのデータフレームを持っています。私は、2つのデータフレームの列の値を比較しようとしています(より具体的には、一方を他方から減算します)。しかし、そうしようとするたびに値のエラーが発生します。データフレームのインデクシングが異なり、この要素を考慮する方法がわかりません(私はPython &パンダにはかなり新しいです)。ここ異なるデータフレームからの列の演算

は、問題のコードである:

start, end = dt.datetime.now()-dt.timedelta(days=60*30), dt.datetime.now() 
f = data.DataReader('F-F_Research_Data_Factors', 'famafrench', start, end)[0] 
s = data.get_data_yahoo('aapl', start, end) 
s = s.resample('M', how='last') 
s['returns'] = s['Adj Close'].pct_change() 

理想的には、私は[ 'RF'] F =行の値と直列を作成したい - S [ '戻る']

すべてのヘルプ非常に高く評価されるだろう。

+1

をしたい任意の操作を行うことができるのだろうか?あなたは例を投稿できますか? – SO44

+0

セットの1つには61の行があり、もう1つの43は...私は最初の43で操作を実行したいと思いますか?しかし、最終的には、この操作を別のデータフレームで実行する関数を構築しているので、普遍的な適用可能なソリューションを見つけることは素晴らしいことでしょう。 –

答えて

1

変換f.index

f.index = f.index.to_datetime() + pd.offsets.MonthEnd() 

f['RF'] - s['returns'] 
+0

これは私が何を話しているかです。ここでデータフレームを整列させることができます。この答えを受け入れてください。あなたは私をdownvotedいけないことを願っています! –

+0

ありがとう!完璧に働いた! –

+1

Noobie、それは私がdownvotedされませんでした! –

-1

異なるサイズの2つのマトリックスの違いをどのように定義できますか?

最初にするべきことは、2つのデータフレームをコモン値(たとえば日付)と照合することです。そして、あなたはデータフレームは、常に同じ長さである

+0

こんにちはNoobie、最終的に私はより普遍的な適用可能な関数メソッドデータフレーム(行列)を取り込み、その列の値を別の行列の値から減算します。具体的には、株式リターンをリスクフリーレートと比較してリスクプレミアムを見つけようとしています...これは、比較されている2つの行列のそれぞれの行が対応する月にリンクされていることを確認する必要があることを意味します..いつもそうではないかもしれません...あなたはこの問題に近づく方法を提案できますか? –

+0

最悪の場合、最悪の場合は、最初に2つの列の平均をとって(リスクフリーとストックリターン)、この問題を回避し、その差を計算します...しかし、だからこそ私はこのアプローチを避けようとしているのです –

関連する問題