Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在同一数据帧/数据框中合并两行_Python_Pandas_Data Analysis - Fatal编程技术网

Python 如何在同一数据帧/数据框中合并两行

Python 如何在同一数据帧/数据框中合并两行,python,pandas,data-analysis,Python,Pandas,Data Analysis,我有一个包含以下列的数据集: (订单#、运单#、订单日期、预定日期、类型、交货费、现金收款、工人、派遣、完成、分配日期、状态) **每个订单以两行表示,第一行类型为:提货,第二行类型为:交货(具有相同的订单和一些列,如: Unnamed: 0 Order # Waybill # Order date \ 0 0 9920000150 NaN 01 Aug, 2019 12:30 PM 1 1

我有一个包含以下列的数据集: (订单#、运单#、订单日期、预定日期、类型、交货费、现金收款、工人、派遣、完成、分配日期、状态)

**每个订单以两行表示,第一行类型为:提货,第二行类型为:交货(具有相同的订单和一些列,如:

   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')

请展示您的数据框和预期输出的示例检查编辑请不要包括您的数据图片,复制并粘贴到问题中。检查编辑请退出!!组合提取提取合并(交货日期=['Order#','Waybill#','Order date','Scheduled for','delivery Fee','Cash collection','Worker',how='left'))工作正常,但日期被复制!我的意思是新df中的提货订单日期+交货订单日期与原始数据集不同