假设我有以下数据框捕获订单号、同一订单的修订号和总价:
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
