2017-09-08 13 views
0

達成したいのは、3つの異なるデータフレームを同じ列とインデックスでマージすることですそれぞれ異なるカテゴリを表します。 df_merged複数のデータフレームを1つのマルチインデックスデータフレームにマージする方法マージされたデータフレームのそれぞれが2番目のレベルの列になる方法

DF1

        Children Movie enthusiast 
household  
06f32e6e45da385834dac983256d59f3 0.086158 NaN 
0d1974107c6731989c762e96def73568 0.120285 0.187764 
0fd4f3b4adf43682f08e693a905b7432 0.400000 0.114686 
11e0057cdc8b8e1b1cdabfa8a092ea5f NaN   0.140000 
120549af6977623bd01d77135a91a523 0.335238 0.192578 

DF2

        Children Movie enthusiast 
household  
06f32e6e45da385834dac983256d59f3 1.0   0.0 
0d1974107c6731989c762e96def73568 4.0   11.0 
0fd4f3b4adf43682f08e693a905b7432 1.0   5.0 
11e0057cdc8b8e1b1cdabfa8a092ea5f 0.0   2.0 
120549af6977623bd01d77135a91a523 7.0   9.0 

DF3

        Children Movie enthusiast 
household  
06f32e6e45da385834dac983256d59f3 nan   nan 
0d1974107c6731989c762e96def73568 0.138  0.037 
0fd4f3b4adf43682f08e693a905b7432 nan   0.025 
11e0057cdc8b8e1b1cdabfa8a092ea5f nan   0.153 
120549af6977623bd01d77135a91a523 0.091  0.021 

(手で満たされたので、すべての値が存在するが、あなたのアイデアを取得しない)

        Children    Movie enthusiast 
            df1  df2 df3  df1  df2 df3 
household      
06f32e6e45da385834dac983256d59f3 0.086158 1  NaN  NaN  NaN NaN 
0d1974107c6731989c762e96def73568 0.120285 4  0.138 0.187764 NaN NaN 
0fd4f3b4adf43682f08e693a905b7432 0.400000 1  NaN  0.114686 NaN NaN 
11e0057cdc8b8e1b1cdabfa8a092ea5f NaN  0  NaN  0.140000 NaN NaN 
120549af6977623bd01d77135a91a523 0.335238 7  0.091 0.192578 NaN NaN 

答えて

0

は、私はあなたがMultiIndexの所望のフォーマットのためのsort_indexと、その後swaplevel、パラメータkeysconcat必要があると思う:

df = pd.concat([df1, df2, df3], keys=['df1','df2','df3'], axis=1) 
     .swaplevel(0,1,axis=1) 
     .sort_index(axis=1) 
print (df) 

            Children    Movie enthusiast \ 
             df1 df2 df3    df1 
06f32e6e45da385834dac983256d59f3 0.086158 1.0 NaN    NaN 
0d1974107c6731989c762e96def73568 0.120285 4.0 0.138   0.187764 
0fd4f3b4adf43682f08e693a905b7432 0.400000 1.0 NaN   0.114686 
11e0057cdc8b8e1b1cdabfa8a092ea5f  NaN 0.0 NaN   0.140000 
120549af6977623bd01d77135a91a523 0.335238 7.0 0.091   0.192578 
household        NaN NaN NaN    NaN 

             Movie enthusiastnthusiast 
            df3      df2 
06f32e6e45da385834dac983256d59f3 NaN      0.00 
0d1974107c6731989c762e96def73568 0.037      11.00 
0fd4f3b4adf43682f08e693a905b7432 0.025      5.00 
11e0057cdc8b8e1b1cdabfa8a092ea5f 0.153      2.00 
120549af6977623bd01d77135a91a523 0.021      9.01 
household       NaN      NaN 
+1

おかげで、完全に働きました!私はswaplevelが存在するかどうか分からなかった。 – LostBoardOnTaurangaBeach

関連する問題