2017-06-16 34 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

相关问题