通过遍历索引列中的重复项来运行for循环:python

2024-09-29 07:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的一个业余用户,我想开发一个逻辑,从与零件相关的可用数量中找出可以满足的订单

partno  ordernumber orderqty    Qty available
A        abc          15        20
A        acb           5        20
A        adc           8        20
B        a41           9        60
B        a14          16        60
B        a56          30        60

每个零件号都有唯一的订单号和订单数量。可用数量是对应于零件号的总可用数量

我想从相关零件的可用数量中找出可以满足的订单。输出如下所示

partno  ordernumber orderqty    Qty available  Y/N
A        abc          15        20              Y
A        acb           5        20              Y
A        adc           8        20              N
B        a41           9        60              Y
B        a14          16        60              Y
B        a56          30        60              Y

我正在努力编写一个for循环,它将遍历重复的零件号,并从每次迭代订单号时的可用数量中减少orderqty

psuedo代码:

      for partno in df
      for ordernumber in df.interrow
      if (qtyavailble>orderqty) 
      {df.newcoln = "Y" & qtyavailable = qtyavailable-orderqty}
      else {df.newcoln="N"}

我知道这是一个可怕的代码,但你明白的。 谢谢


Tags: 订单dffor数量availableqtyabcadc
1条回答
网友
1楼 · 发布于 2024-09-29 07:32:46

您可以groupbypartno然后对orderqty执行cumsum,并找出它是否大于Qtyavailable

df.groupby('partno').orderqty.cumsum().le(df.Qtyavailable).map({True:'Y',False:'N'})
Out[459]: 
0    Y
1    Y
2    N
3    Y
4    Y
5    Y
dtype: object

相关问题 更多 >