是否有机会在大型数据集上加快使用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()
但是大文件的处理时间太长
答案 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