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

相同订单号相同商品的订单数量合并,订单行合并(语言-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 12: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月11日
  • 已采纳回答 4月3日
  • 修改了问题 4月3日
  • 修改了问题 4月3日
  • 展开全部

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效