首页 > 解决方案 > Pandas Groupby 并在多列中查找重复项

问题描述

我有一个数据框,我想按“Value_pack”列进行分组,并检查 2 个或多个“Value_pack”是否具有相同的“价值”和“折扣”。(重复)

我想从数据框中删除除第一次出现的重复项之外的所有重复项。

输入数据框:

  Value_pack    value   discount
    val 1        ADA       0
    val 2        ADB       100
    val 2        ADA       0  <---- duplicate
    val 3        ADA       50
    val 3        ADC       50
    val 4        ADV       40

输出数据框:

    Value_pack  value   discount
    val 1        ADA       0
    val 2        ADB       100
    val 3        ADA       50
    val 3        ADC       50
    val 4        ADV       40

df.groupby(['Value_pack']).drop_duplicates(['value', 'discount'])

这是我到目前为止的代码,但我无法弄清楚如何获得我想要的数据框。

标签: pythonpandasdataframepandas-groupby

解决方案


Using groupby you need to approach this from the other end: You group by value and discount and pick the first Value_pack:

df.groupby(["value", "discount"]).first().reset_index()

推荐阅读