email cat
0 email1@gmail.com Mobiles & Tablets
1 email2@gmail.com Mobiles & Tablets
2 email1@gmail.com Mobiles & Tablets
3 email3@gmail.com Mobiles & Tablets
4 email3@gmail.com Home & Living
5 email1@gmail.com Home & Living我按“email”分组,并将“cat”放在如下列表中:
test = purchase_cat_df.groupby('email').apply(lambda x: list(x.cat))但是我的DataFrame测试是:
email
email1@gmail.com [Mobiles & Tablets, Mobiles & Tablets, Home & ...
email2@gmail.com [Mobiles & Tablets]
email3@gmail.com [Mobiles & Tablets, Home & Living]我丢失了索引和名称,我如何命名列2?
发布于 2017-05-24 17:46:28
如果你想保留你的原始索引,你可能需要这样的东西:
purchase_cat_df.groupby('email', as_index=False)as_index=False保留原始索引。然后,您可以继续按列的名称寻址该列。
发布于 2015-02-04 00:20:42
正如@BrenBarn在评论中提到的,包含列表的列没有名称,因为您有一个Series,而不是一个DataFrame。
试试这个:
test = purchase_cat_df.groupby('email').apply({'cat': list})它返回一个DataFrame,其中email被设置为索引,cat被设置为新列的名称。
当您有多个要聚合的列时,也可以使用它。请参阅the documentation,其中有几个示例。
https://stackoverflow.com/questions/26002474
复制相似问题