【问题标题】:How to compare and drop rows within groupby in pandas?如何在熊猫的 groupby 中比较和删除行?
【发布时间】:2020-07-01 00:10:45
【问题描述】:

我有一个看起来像这样的 df:

              datetime                     policyid                   score
0   1970-01-01 00:00:01.593560812         9876policyID1234567890        0 
1   1970-01-01 00:00:01.593560814         9876policyID1234567890        0 
2   1970-01-01 00:00:01.593560958         9876policyID1234567890        1
3   1970-01-01 00:00:01.593560964         9876policyID1234567890        1

我想按policyidscore 分组,但只保留具有相同policyid 和分数的最大标记的行。

我是这样分组的:

df.groupby(['policyid','score'])

此时,我不确定如何比较行之间的时间戳并保留具有更大时间戳的行。

新的 DF 应该如下所示:

              datetime                     policyid                   score
1   1970-01-01 00:00:01.593560814         9876policyID1234567890        0 
3   1970-01-01 00:00:01.593560964         9876policyID1234567890        1

提前谢谢你。

【问题讨论】:

    标签: python pandas dataframe python-3.7


    【解决方案1】:

    您可以使用sort_values,然后使用drop_duplicates

    df=df.sort_values('datetime').drop_duplicates(['policyid','score'], keep='last') 
    

    【讨论】:

    • 完美的做到了!
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2016-09-03
    • 2019-04-12
    • 2023-03-24
    • 1970-01-01
    • 2015-08-20
    相关资源
    最近更新 更多