2017-12-27 23 views

答えて

0

使用groupby + apply -

v = df.groupby(['A' ,'B']).C.apply(lambda x: x.tolist()) 

df = pd.DataFrame(v.tolist(), index=v.index)\ 
     .rename(columns=lambda x: x + 1)\ 
     .add_prefix('C')\ 
     .reset_index() 
df 

    A B C1 C2 C3 
0 1 x1 a a  b 
1 2 x2 b a None 
0

あなたは​​とunstack

In [196]: (df.set_index(['A', 'B', df.groupby(['A', 'B']).cumcount()+1])['C'] 
      .unstack() 
      .add_prefix('C') 
      .reset_index()) 
Out[196]: 
    A B C1 C2 C3 
0 1 x1 a a  b 
1 2 x2 b a None 
+0

を使用することができ、ありがとうござい両方の提案は動作しますが、1つだけを受け入れることができます。 – Josl

関連する問題