python - 我如何合并同一数据框/ Pandas 中的两行

标签 python pandas data-analysis

我有一个数据集包括这些列: (订单号、运单号、订单日期、预定日期、类型、运费、收款、工作人员、已 dispatch 、已完成、分配日期、状态)

** 每个订单以两行表示,第一个类型:PICKUP,第二个类型:DELIVERY(具有相同的订单号和一些列,例如:

   Unnamed: 0     Order #  Waybill #             Order date  \
0           0  9920000150        NaN  01 Aug, 2019 12:30 PM   
1           1  9920000150        NaN  01 Aug, 2019 12:30 PM   

           Scheduled for      Type  Delivery Fee  Cash collection   Worker  \
0  01 Aug, 2019 03:00 PM    PICKUP           NaN              NaN  Driver1   
1  01 Aug, 2019 03:00 PM  DELIVERY           NaN            135.0  Driver1   

              Dispatched              Completed            Assigned On  \
0  01 Aug, 2019 01:49 PM  01 Aug, 2019 01:51 PM  01 Aug, 2019 01:42 PM   
1  01 Aug, 2019 01:55 PM  01 Aug, 2019 02:08 PM  01 Aug, 2019 01:42 PM   

      Status  
0  Completed  
1  Completed  

我想将两行合并为一行,这样列就会像这样: 所以一列可以表示为: [订单号,运单号,订单日期,预定日期,送货费,收款,工作人员,派送_取件,完成_取件,指定取件,状态_取件,派送_送货,完成_送货,指定送货,送货状态]

我刚试过,没用 df1 = df.assign(cid = df.groupby(['Order #', 'Waybill #', 'Order date' , 'Scheduled for']).cumcount()).set_index(['Order #', 'cid ']).unstack(-1).sort_index(1,1)

最佳答案

这是一个简单的示例,您可以将其扩展到更多列。我重命名了这些列,这样它们就不会发生冲突。

pickup_df = df[df['type'] == "PICKUP"]
delivery_df = df[df['type'] == "DELIVERY"]

pickup_df = pickup_df[['Order#','Waybill', 'Orderdate']]
delivery_df = pickup_df[['Order#','Waybill', 'Orderdate']]

pickup_df.rename( columns={'Waybill' : 'Pickup Waybill', 'Orderdate' : 'Pickup Orderdate'}, inplace=True)
deliver_df.rename( columns={'Waybill' : 'Delivery Waybill', 'Orderdate' : 'Delivery Orderdate'}, inplace=True)

combined_df = pickup_df.merge(deliver_df, on='Order#', how='left')

关于python - 我如何合并同一数据框/ Pandas 中的两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58330696/

相关文章:

python - 使用 re 从 .pgn (字符串行)构建数据框

python - 将一列的值分成两列

excel - MATLAB:从 100,000 行和 300 列的 Excel 工作表中将数据导入 Matlab

python - 如何通过python打开一个文件

python-3.x - 如何在 pandas.read_csv() 之前预处理数据

python - 装饰师的工作

c# - 分析大量数据的有效方法?

python - 查找列表中标签关系的频率(成对相关?)

python - 为 ASCII 数据添加名称和分配数据类型

python - 关于 *multi-key* 外连接的默认/填充值