【问题标题】:Collapse two rows into 1 in Pandas [duplicate]在 Pandas 中将两行折叠为 1 [重复]
【发布时间】:2021-01-15 12:11:19
【问题描述】:

我正在尝试将片段从两个折叠成一行,而国家/地区在 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

谁能帮帮我?

【问题讨论】:

  • @dfundako 不知何故它不起作用。下面的答案有效。谢谢

标签: python pandas


【解决方案1】:

尝试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]

【讨论】:

  • 非常感谢。这很完美。
  • 我不知道。我现在这样做了。谢谢。
猜你喜欢
  • 2019-08-07
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 2020-03-20
  • 1970-01-01
相关资源
最近更新 更多