Skip to main content
 首页 » 编程设计

python之如何创建一个新列,说明此行是否是 Pandas 中每个订单的最新修订订单

2025年05月04日13lautakyan007

假设我有以下数据框捕获订单号、同一订单的修订号和总价:

OrderNum  RevNum  TotalPrice 
 0AXL3     0       $5.00 
 0AXL3     1       $4.00 
 0AXL3     2       $7.00 
 0AXL3     3       $8.00 
 0BDF1     0       $3.00 
 0BDF1     1       $2.50 
 0BDF1     2       $8.50 

我将如何添加一个列来说明该行是否是对订单的最新修订?所需的输出如下:

OrderNum  RevNum  TotalPrice  NewestRevision 
 0AXL3     0       $5.00      No 
 0AXL3     1       $4.00      No 
 0AXL3     2       $7.00      No 
 0AXL3     3       $8.00      Yes 
 0BDF1     0       $3.00      No 
 0BDF1     1       $2.50      No 
 0BDF1     2       $8.50      Yes 

请注意,这与我之前提出的问题非常相似 here

然而,我们现在只需要一个新列来说明这是否是最新修订版,而不是删除以前的条目。预先感谢您的任何/所有帮助!

编辑:我的数据框中的行不一定按 OrderNum 排序

请您参考如下方法:

您可以将 duplicated 与 map 一起使用

df['NewestRevision']=df.duplicated('OrderNum',keep='last').map({True:'No',False:'Yes'}) 
df 
Out[328]:  
  OrderNum  RevNum TotalPrice NewestRevision 
0    0AXL3       0      $5.00             No 
1    0AXL3       1      $4.00             No 
2    0AXL3       2      $7.00             No 
3    0AXL3       3      $8.00            Yes 
4    0BDF1       0      $3.00             No 
5    0BDF1       1      $2.50             No 
6    0BDF1       2      $8.50            Yes