【问题标题】:Pandas groupby key then filter based on group and return keysPandas groupby 键然后根据组和返回键进行过滤
【发布时间】:2018-11-28 17:12:15
【问题描述】:

panda下面的做法是什么?

data.groupby('id').duration.max().index[data.groupby('id').duration.max() > 365]

我不想按 id 分组,然后使用组过滤并返回条件为真的 id。

使用 group.filter 函数返回原始数据帧。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以重写您的代码 - 它被称为 boolean indexingSeries 来自聚合函数 maxindex

    s = data.groupby('id').duration.max()
    idx = s.index[s > 365]
    #alternative
    #idx = s[s > 365].index
    

    您还可以检查Series的过滤值:

    print(s[s > 365])
    

    但是如果想过滤原始DataFrame max 每组值添加GroupBy.transform 以返回与原始Series 相同大小的DataFrame

    data[data.groupby('id').duration.transform('max') > 365]
    

    【讨论】:

    • 谢谢,所以 pandas 中没有函数式编程让我很难过 panda :(
    猜你喜欢
    • 2020-06-24
    • 1970-01-01
    • 2018-07-31
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多