【问题标题】:select groups having more than x members选择具有超过 x 个成员的组
【发布时间】:2016-10-24 11:39:29
【问题描述】:

pandas 有没有办法从分组的数据框中选择具有超过 x 个成员的组?

类似:

grouped = df.groupby(['a', 'b'])
dupes = [g[['a', 'b', 'c', 'd']] for _, g in grouped if len(g) > 1]

我在文档或 SO 上找不到解决方案。

【问题讨论】:

    标签: python pandas select pandas-groupby


    【解决方案1】:

    使用filter:

    grouped.filter(lambda x: len(x) > 1)
    

    例子:

    In [64]:
    df = pd.DataFrame({'a':[0,0,1,2],'b':np.arange(4)})
    df
    
    Out[64]:
       a  b
    0  0  0
    1  0  1
    2  1  2
    3  2  3
    
    In [65]:
    df.groupby('a').filter(lambda x: len(x)>1)
    
    Out[65]:
       a  b
    0  0  0
    1  0  1
    

    【讨论】:

    • 哦,很简单,我正在尝试,但我的 lambda 函数正在使用 group_name 和 group,因为它们是在对分组的 df 进行迭代时产生的。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多