pythonman2021 2022-04-03 03:24 采纳率: 75%
浏览 130
已结题

相同订单号相同商品的订单数量合并,订单行合并(语言-python)

img


如上图所示订单csv中,第一列为订单号,第四列为数量,第五列为商品货位,相同货位是相同商品.
如果一行中第一列和第五列相同,则将他们第四列的数量相加,变成一行
如果一行中,第一列相同,第五列不同,则不相加,保持原样
处理后生成新的csv变成下图的样子

img


感谢指教和帮忙
Order ID (M),Batch ID (O),Item name (M),Item count (M),Bin location (M)
1648567404985200,1,bras,1,2A41-11-12
1648567404985200,1,bras,2,2A41-11-12
1648567404985200,1,bras,3,2A41-11-12
1648567404985227,1,bras,1,2A41-01-16
1648567404985227,1,bras,1,2A41-01-16
1648567404985227,1,bras,2,2A41-01-16
1648567404985227,1,bras,2,2A41-01-16
1648567404985262,1,bras,5,2B43-05-44
1648567404985278,1,bras,6,2B42-15-26
1648567404985278,1,bras,7,2B42-15-26
1648567404985278,1,bras,8,2B42-15-26
1648567404985278,1,bras,9,2B42-15-26
1648567404985278,1,bras,10,2B42-15-26

  • 写回答

2条回答 默认 最新

  • 陈年椰子 2022-04-03 04:22
    关注

    先用read_csv 读入数据, 再分组 , 最后to_csv 即可
    参考下这个例子

    
    import pandas as pd
    
    list1 = [ ['a001A',1,2,'s001'],['a001A',2,2,'s002'],['c003C',3,3,'s002'],['a001A',4,4,'s001']
             ,['a001A',3,4,'s001'], ['c003C', 5, 6,'s002'],['c003C',7,8,'s001'] ]
    df1 = pd.DataFrame(list1)
    df1.columns=['ID','DATA1','DATA2','STOCK']
    
    # 你把以上的代码,换成 read_csv 即可。
    print(df1)
    df2 = df1[['ID','STOCK','DATA2']].groupby(['ID','STOCK']).sum().reset_index()
    print(df2)
    df2.to_csv("data_group.csv")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月3日
  • 修改了问题 4月3日
  • 修改了问题 4月3日
  • 展开全部
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部