【问题标题】:Python groupby and delete certain rows onlyPython groupby并仅删除某些行
【发布时间】:2020-05-05 07:44:36
【问题描述】:

A. BC 102 2019 年 12 月 12 日 102 01/2020 韩元 102 02/2020 存档 102 03/2020 已删除 101 2019 年 12 月 12 日 101 01/2020 韩元 101 02/2020 韩元 101 03/2020 韩元

我想在某个 A 获胜时删除所有重复(记录/行),但仅当它保持在获胜时(A=101)。但如果它从韩元变成其他东西,那么我希望它在数据中。

结果: A. B. C. 102 2019 年 12 月 12 日 102 01/2020 韩元 102 02/2020 存档 102 03/2020 已删除 101 2019 年 12 月 12 日 101 01/2020 韩元

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    boolean indexingSeries.eqDataFrame.duplicated~ 的反向掩码一起使用:

    df = df[~(df.duplicated(['A','C']) & df['C'].eq('won'))]
    print (df)
         A        B         C
    0  102  12/2019   looking
    1  102  01/2020       won
    2  102  02/2020  archived
    3  102  03/2020   deleted
    4  101  12/2019   looking
    5  101  01/2020       won
    

    【讨论】:

    • 因此,A 列中有 100 个合约编号,例如 101,它们有无限的时间序列(B 列)。并不是所有的合同都会赢,但无论如何我都需要这些
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 2013-08-01
    相关资源
    最近更新 更多