2017-07-28 21 views
1

同じキーを使用して5つのデータフレームを結合する必要があります。私は結合をしながらいくつかの一時的なデータフレームを作成しました。下のコードはうまくいきますが、この目標を達成するためのよりエレガントな方法があるのでしょうか?ありがとう!パンダ:同じキーで複数のデータフレームを結合する

df1 = pd.read_pickle('df1.pkl') 
df2 = pd.read_pickle('df2.pkl') 
df3 = pd.read_pickle('df3.pkl') 
df4 = pd.read_pickle('df4.pkl') 
df5 = pd.read_pickle('df5.pkl') 

tmp_1 = pd.merge(df1, df2, how ='outer', on = ['id','week']) 
tmp_2 = pd.merge(tmp_1, df3, how ='outer', on = ['id','week']) 
tmp_3 = pd.merge(tmp_2, df4, how ='outer', on = ['id','week']) 
result_df = pd.merge(tmp_3, df5, how ='outer', on = ['id','week']) 

答えて

2

使用pd.concatインデックスを設定した後

dfs = [df1, df2, df3, df4, df5] 
cols = ['id', 'weedk'] 
df = pd.concat([d.set_index(cols) for d in dfs], axis=1).reset_index() 

は読んでファイルをインクルード

from glob import glob 

def rp(f): 
    return pd.read_pickle(f).set_index(['id', 'week']) 

df = pd.concat([rp(f) for f in glob('df[1-5].pkl')], axis=1).reset_index() 
関連する問題