2017-06-16 41 views
1
member_srl click_day productid 
0  6963 20170106 3927352 
1  6963 20170106 3790726 
2  6963 20170106  977962 
3  6963 20170106 1393860 
4  6963 20170106 3759353 

這是我的df,我想將member_srl和click_day分組,以獲得productid的列表。例如,member_srl 6963和click_day 20170106將對應產品列表:[3927352,3790726,977962,1393860,3759353]如何將數據框的列分組以在熊貓中列出?

謝謝。

回答

2

使用groupbyapplylist

df = df.groupby(['member_srl','click_day'])['productid'].apply(list) 
print (df) 
member_srl click_day 
6963  20170106  [3927352, 3790726, 977962, 1393860, 3759353] 
Name: productid, dtype: object 

df = df.groupby(['member_srl','click_day'])['productid'].apply(list).reset_index() 
print (df) 
    member_srl click_day          productid 
0  6963 20170106 [3927352, 3790726, 977962, 1393860, 3759353] 
+0

嗯,看來我應該擴大我的記憶(16G),而原來的CSV是16G。當我使用你的代碼時它崩潰了。謝謝。 – yanachen

+0

在我看來,如果使用16GB csv,16GB內存是有問題的。 :(可以添加內存或使用其他機器? – jezrael

+0

謝謝。我將數據移動到另一臺機器。非常感謝。 – yanachen