使用pandas groupby将行折叠成单行?

时间:2019-11-24 20:26:34

标签: python pandas group-by pandas-groupby data-science

我有一个看起来像这样的Pandas DataFrame对象:

enter image description here

以前两行为例:

我想将前两行转换成这样的一行:

榆木水草帽|卡其色| XS / S,M,L

我得到的最接近的是:

products = products.groupby(['title', 'color'])['size'].apply(' '.join)
title               color      
ELM WATER SOMBRERO  BLUE           XS/S M/L
                    KHAKI          XS/S M/L
MYLA SWIM BOTTOM    BLACK          XS S M L
                    NEON PINK      XS S M L
                    TURQUOISE      XS S M L
MYLA SWIM TOP       NEON ORANGE    XS S M L
                    NEON YELLOW    XS S M L
                    WHITE          XS S M L
Name: size, dtype: object

这可以正确合并尺寸,但是不幸的是,它会生成一系列表格(标题,颜色):joinedSizes,并且缺少尺寸标签。

我对Pandas很有经验,但是尽管在互联网上阅读了多个groupby教程,但我似乎无法破解,但我非常感谢社区提供的帮助!

2 个答案:

答案 0 :(得分:0)

尝试将aggas_index=False用于groupby

products = products.groupby(['title', 'color'], as_index=False)['size'].agg(' '.join)

答案 1 :(得分:0)

哇,所以我想我要做的就是调用reset_index()。谢谢大家。