2017-02-09 10 views
2

内のマルチインデックス付き情報を連結私は以下のようなマルチインデックスデータフレームを有する:パンダのデータフレーム

 col1 col2 col3 col4 
row1 0 A A b b 
     1 B B c c 
row2 0 A B d d 
     1 B B e e 

をし、例えば情報を連結する最も効率的な方法を知りたいですCOL1 ROW1 +のために、ROW1 + col2に、など私の結果は次のようになりますように:

   col1 col2 col3 col4 
row1   AB AB bc bc 
row2   AB BB de de 

これまでのところ、私はこれを行うには見ることができる唯一の/最善の方法は次のとおりです。実際には

dx = pd.concat(
    [df[col].unstack().apply(lambda row: row.str.cat(sep=''),axis=1) 
     for col in df.columns], 
    axis=1, 
) 

dx.columns = df.columns 

この特定のデータフレームは1.5m行×1000列のサイズなので、それを反復するより効率的な方法が大歓迎です!

答えて

2

文字列が互換性sumなので、これは単にインデックスの最初のレベルにグループ化することによって、それを行います:

df.groupby(level=0).apply(sum) 
Out[37]: 
    col1 col2 col3 col4 
row1 AB AB bc bc 
row2 AB BB de de 
+0

おかげBoud、私は実現しなかったことについて 'sum' – blackgore