+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何创建新列说明此行是否是熊猫中每个订单的最新修订订单

发布于2020-06-01 21:53     阅读(190)     评论(0)     点赞(14)     收藏(5)


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

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

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

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

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


解决方案


如果您的行总是被排序,那么每个组中的最后一行是最新修订版,@ Wen的答案很好。

如果不是这种情况,并且假设“最新修订”等同于组中具有最高修订RevNum,则可以执行以下操作:

import numpy as np
df['NewestRevision'] = np.where( \
    df.RevNum == df.groupby('OrderNum')['RevNum'].transform(np.max), 'Yes', 'No')

这将检查是否与给定RevNum的最高点相同,如果RevNumOrderNum,则返回'Yes',否则返回'No'



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/400990/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

14 0
收藏该文
已收藏

评论内容:(最多支持255个字符)