在大型数据集中加快分组和汇总

时间:2020-09-16 17:41:28

标签: python pandas

是否有机会在大型数据集上加快使用groupby和agrregate?

我有这样的数据框:

User Category
A    Cat 
B    Dog    
C    Cat
A    Dog

我想向数组中的每个用户显示所有类别,例如:

User Category
A    [Cat,Dog]
B    [Dog]
C    [Cat]

我为此使用的代码如下:

 df = df.groupby('User')['Category'].aggregate(
        lambda x: x.unique().tolist()).reset_index()

但是大文件的处理时间太长

1 个答案:

答案 0 :(得分:1)

drop_duplicate之前让我们groupby

out = df.drop_duplicates().groupby('User')['Category'].agg(list)
Out[249]: 
User
A    [Cat, Dog]
B         [Dog]
C         [Cat]
Name: Category, dtype: object