【问题标题】:Conditional drop duplicates有条件的删除重复项
【发布时间】:2020-06-04 18:54:49
【问题描述】:

我知道这里有一个类似的问题:Pandas - Conditional drop duplicates

但是我的情况不同。

我有一个数据框: df1

ID          Start                     V_or_D
1           22/02/2020 11:55:01       V
1           22/02/2020 11:55:01       D
2           22/02/2020 11:55:01       D
2           22/02/2020 11:55:01       D
6           22/02/2020 11:55:01       D
6           22/02/2020 11:55:01       D
6           22/02/2020 11:55:01       V

我想删除基于ID 的重复项。因此,如果重复项在V_or_D 中有 D 或 V 或 D、D、V 的组合,它将删除带有 D 的行。例如,如果组合是 D,D 它将保留第一个并丢弃其他的。

我想要的输出是:

ID          Start                     V_or_D
1           22/02/2020 11:55:01       V
2           22/02/2020 11:55:01       D
6           22/02/2020 11:55:01       V

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您已经指出了解决方案。稍加修改,jezreal 的代码就像一个魅力:

    df = data.sort_values('V_or_D', ascending=False).drop_duplicates('ID', keep='first').sort_index()
    

    输入:

       ID        Start           V_or_D
    0   1  22.02.2020 11:55:01      V
    1   1  22.02.2020 11:55:02      D
    2   2  22.02.2020 11:55:03      D
    3   2  22.02.2020 11:55:04      D
    4   6  22.02.2020 11:55:05      D
    5   6  22.02.2020 11:55:06      D
    6   6  22.02.2020 11:55:07      V
    

    输出:

       ID        Start           V_or_D
    0   1  22.02.2020 11:55:01      V
    2   2  22.02.2020 11:55:03      D
    6   6  22.02.2020 11:55:07      V
    

    【讨论】:

      猜你喜欢
      • 2018-02-17
      • 2019-02-02
      • 2012-06-15
      • 2019-07-30
      • 2018-09-24
      • 2019-12-03
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      相关资源
      最近更新 更多