【问题标题】:How can I merge rows that contains a specific value in Pandas [duplicate]如何合并包含 Pandas 中特定值的行 [重复]
【发布时间】:2022-11-27 10:31:59
【问题描述】:

我想合并包含特定值的行,但是,我希望合并的行具有新列。

例子

import pandas as pd


df = pd.DataFrame([{'Day': "Monday", 'Item_1':   "Shirt", 'Item_2': "Mug",   'Item_3': "Pen"},
                   {'Day': "Monday", 'Item_1':   "Shoes", 'Item_2': "Tea",   'Item_3': "Book"},
                   {'Day': "Tuesday", 'Item_1':"Charger", 'Item_2': "Router",'Item_3': "Phone"},
                   {'Day': "Tuesday", 'Item_1':"Monitor", 'Item_2': "Toy",   'Item_3': "Chair"},
                   {'Day': "Friday", 'Item_1':   "Shirt", 'Item_2': "TV",    'Item_3': "Desk"}])
df


Day Item_1  Item_2  Item_3
0   Monday  Shirt   Mug Pen
1   Monday  Shoes   Tea Book
2   Tuesday Charger Router  Phone
3   Tuesday Monitor Toy Chair
4   Friday  Shirt   TV  Desk

我希望像这样合并同一天的任何行


Day  Item_1     Item_2     Item_3     Item_1_1     Item_2_1     Item_3_1
Monday   Shirt      Mug        Pen    Shoes        Tea      Book
Tuesday  Charger    Router     Phone  Monitor      Toy      Chair
Friday   Shirt      TV         Desk   NaN          NaN      NaN

有没有办法这样做?

【问题讨论】:

    标签: python pandas dataframe machine-learning


    【解决方案1】:

    我想你可以在这里使用groupby

    df = (df
          .groupby('Day', sort=False)
          .apply(lambda x: x.to_numpy())
          .apply(np.concatenate)
          .apply(pd.Series)
          .reset_index(drop=True)
          )
    
    # fix col names
    df.columns = ['Day'] + [f'Item_{x}' for x in range(1, df.shape[1])]
    
    print(df)
    
           Day   Item_1  Item_2 Item_3   Item_4   Item_5 Item_6 Item_7
    0   Monday    Shirt     Mug    Pen   Monday    Shoes    Tea   Book
    1  Tuesday  Charger  Router  Phone  Tuesday  Monitor    Toy  Chair
    2   Friday    Shirt      TV   Desk      NaN      NaN    NaN    NaN
    
    

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 2021-06-20
      • 2021-01-30
      • 2019-07-04
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 2020-07-24
      • 2023-02-17
      相关资源
      最近更新 更多