2017-08-01 231 views
2

我很新的Python /熊貓,我有一個數據幀,看起來是這樣的:由ID熊貓:組兩列基於其他列的值

id   name  color 
id_1  alex  blue 
id_2  james  yellow 
id_1  sara  black 
id_4  dave  pink 
id_4  lin   grey 
id_2  aly   red 

我想組並獲得其他兩列中的值作爲列表:

id   name    color 
id_1  [alex,sara]  [blue,black] 
id_2  [james,aly]  [yellow,red] 
id_4  [dave,lin]  [pink,grey] 

有沒有簡單的方法來做到這一點?

+0

的可能的複製https://stackoverflow.com/questions/34776651/concatenate-rows-of-pandas-dataframe-with-same-id – piroot

回答

2

使用groupbyagg通過自定義函數與tolist

df = df.groupby('id').agg(lambda x: x.tolist()) 
print (df) 
       name   color 
id        
id_1 [alex, sara] [blue, black] 
id_2 [james, aly] [yellow, red] 
id_4 [dave, lin] [pink, grey] 
+1

完美,謝謝! +1 – Shushu