2017-02-24 11 views
1

このPythonのデータフレームGROUPBY

ように私は、Python

A B  C  D E 
0 foo one 0.46 -0.86 
1 bar one -0.28 -2.10 
2 foo two -1.50 -0.49 
3 bar three -1.13 1.07 
4 foo two 1.21 0.72 
5 bar two -0.17 -0.70 
6 foo one 0.11 -1.03 
7 foo three -1.04 0.27 

のデータセットを持っていると私は構造に変換したい

A B   C    D    E 
0 foo [one,two,two] [.46,-1.50,1.2] [-.86,-.49,.72] 
1 bar [one,three,two] [-.28,-1.13,-.17] [-2.1,1.07,-.70] 

元のデータセットは、行の百万を持っているので、私は「ドンforループを試したい。それはグループバイを使用して行うことは可能ですか?または既存の関数ですか?

答えて

1

これを試してみてください:

f = lambda x: x.tolist() 
df1 = df.groupby('B').agg({'C':f,'D':f,'E':f}) 
print(df1) 

出力:

       C         E \ 
B                  
bar   [one, three, two]     [-2.1, 1.07, -0.7] 
foo [one, two, two, one, three] [-0.86, -0.49, 0.72, -1.03, 0.27] 

            D 
B          
bar   [-0.28, -1.13, -0.17] 
foo [0.46, -1.5, 1.21, 0.11, -1.04] 
関連する問題