首页 > 解决方案 > 编辑实体时如何删除重复项而不替换原件?

问题描述

考虑到我们有一个代表一些购买的数据集。一起购买的产品具有相同的购物篮 ID。

当购买的产品被编辑(例如,最初插入错误的价格)时,它不会替换原始记录。而是为该购物篮 ID的每个产品创建一条新记录,并为购买分配一个新的购物篮 ID。

例如,考虑购买一瓶牛奶和一块巧克力:

    Product   Price BasketID   PreviousBasketID
0   Milk      2     1234       Null
1   Chocolate 3     1234       Null

假设我们想编辑巧克力的价格。那么数据集将是:

    Product   Price BasketID   PreviousBasketID
0   Milk      2     1234       Null
1   Chocolate 3     1234       Null
2   Milk      2     5678       1234
3   Chocolate 4     5678       1234

有没有办法只保留最新版本的篮子(即 BasketID = 5678)并摆脱任何以前的版本?

标签: pythonpandas

解决方案


您可以删除任何BasketID出现在 中的行PreviousBasketID吗?

就像是:

df = df[~df["BasketID"].isin(df["PreviousBasketID"])]

这里的~意思是按位不。请参阅此处了解更多信息。


推荐阅读