パンダデータフレームの列を反復処理する方法 質問する

パンダデータフレームの列を反復処理する方法 質問する

Python で Pandas を使用した次のコードがあります:

all_data = {}
for ticker in ['FIUIX', 'FSAIX', 'FSAVX', 'FSTMX']:
    all_data[ticker] = web.get_data_yahoo(ticker, '1/1/2010', '1/1/2015')

prices = DataFrame({tic: data['Adj Close'] for tic, data in all_data.iteritems()})  
returns = prices.pct_change()

次のように回帰分析を実行できることはわかっています。

regs = sm.OLS(returns.FIUIX,returns.FSTMX).fit()

しかし、データフレームの各列に対してこれをどのように実行すればよいのでしょうか? 具体的には、各列に対して回帰を実行するために、列を反復処理するにはどうすればよいでしょうか?

具体的には、他の各ティッカー シンボル (FIUIX、FSAIX、FSAVX) を FSTMX に回帰し、各回帰の残差を保存します。

以下のさまざまなバージョンを試しましたが、どれも望みどおりの結果が得られませんでした。

resids = {}
for k in returns.keys():
    reg = sm.OLS(returns[k],returns.FSTMX).fit()
    resids[k] = reg.resid

returns[k]コードの部分に何か問題がありますか?k値を使用して列にアクセスするにはどうすればよいでしょうか? あるいは、もっと簡単な方法はありますか?

ベストアンサー1

古い回答:

for column in df:
    print(df[column])

以前の回答はまだ機能しますが、pandas 0.16.0 の頃に追加されたものです。より優れたバージョンが利用可能です。

今、次のことができるようになりました:

for series_name, series in df.items():
    print(series_name)
    print(series)

おすすめ記事