在熊猫中将两行折叠为1

时间:2020-09-29 20:23:13

标签: python pandas

我正在尝试将这些片段从两部分折叠成一排,而在大熊猫中,国家仍将保持独特。 我在不同国家/地区拥有大约3000种不同细分市场的产品。

初始表格-

Product   Segment     Country    Company      Market
Product A Segment 1   US         Company A    Market A
Product A Segment 2   US         Company A    Market A
Product A Segment 1   UK         Company A    Market A 
Product A Segment 2   UK         Company A    Market A
Product B Segment 5   US         Company B    Market B
Product B Segment 6   US         Company B    Market B
Product B Segment 7   US         Company B    Market B 
Product B Segment 5   UK         Company B    Market B
Product B Segment 6   UK         Company B    Market B
Product B Segment 7   UK         Company B    Market B 

想要折叠细分并保持国家/地区与众不同。

这是我正在寻找的结果-

Product    Segment                          Country    Company      Market
Product A  Segment 1; Segment 2             US         Company A    Market A
Product A  Segment 1; Segment 2             UK         Company A    Market A
Product B  Segment 5; Segment 6; Segment 7  US         Company B    Market B
Product B  Segment 5; Segment 6; Segment 7  UK         Company B    Market B

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

尝试groupby(),然后使用agg将细分添加到列表中。

df.groupby(['Product', 'Country', 'Company', 'Market'])['Segment'].agg(list).reset_index()



  Product Country   Company   Market                         Segment
0  ProductA      UK  CompanyA  MarketA            [Segment1, Segment2]
1  ProductA      US  CompanyA  MarketA            [Segment1, Segment2]
2  ProductB      UK  CompanyB  MarketB  [Segment5, Segment6, Segment7]
3  ProductB      US  CompanyB  MarketB  [Segment5, Segment6, Segment7]