Pandas 删除稀疏组的最快方法?

Pandas 删除稀疏组的最快方法?,pandas,Pandas,我有一些pandas代码来删除不属于完整集合的组。下面代码正在执行的一个示例是: 创建组 获取最大组的大小。e、 g.,72岁 删除不在最大组中的所有行。i、 例如,如果我重新组合,每个组的大小将为72 第一种执行步骤3的方法对我来说最有意义,但速度很慢 第二种方法似乎有点复杂,但速度要快得多。由于组索引是中位数索引的子集,因此可能会出现卷积。(两个指数都是多指数) 有没有一种快速、直观的方法可以做到这一点 #筛选出不常见的组 分组=中间值。分组依据(分组列) max\u group\u siz

我有一些pandas代码来删除不属于完整集合的组。下面代码正在执行的一个示例是:

  • 创建组
  • 获取最大组的大小。e、 g.,72岁
  • 删除不在最大组中的所有行。i、 例如,如果我重新组合,每个组的大小将为72
  • 第一种执行步骤3的方法对我来说最有意义,但速度很慢

    第二种方法似乎有点复杂,但速度要快得多。由于
    索引是
    中位数
    索引的子集,因此可能会出现卷积。(两个指数都是多指数)

    有没有一种快速、直观的方法可以做到这一点

    #筛选出不常见的组
    分组=中间值。分组依据(分组列)
    max\u group\u size=groups.size().max()
    ##需要84秒
    #%时间中位数=组。筛选器(lambda组:len(组)=最大组大小)
    #需要34秒
    groups\u size=groups.size().到\u frame('size')的
    groups\u to\u drop=groups\u size[groups\u size.size!=max\u group\u size]。索引
    %时间中位数=中位数。删除(组到删除)
    
    用于新的
    系列
    如原始数据帧,因此可能通过以下方式进行过滤:


    8.0万t̶h̶h̶t̶h̶t̶h̶h̶h̶t̶t,h̶t,t„h h h h,m̶t,h h,h,h,h 822t,h,h,h,h,h,t,h,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t 822,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,2,4.7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8.5.......................................................................................................................................................院校院校院校院校院校院校院校院校校校校校校校本本本本本本本省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省省"a,n,d,m,i,n,e,h,a,s,1,2,7,8,2,r,o,w,s,噢哈。我看到你的编辑。我早该抓到的time@Jayen-嗯,我想我以后会从
    更改答案=
    =
    这比您的解决方案快12倍:
    中间值=中间值[组['median']。转换('size')==最大周期数]
    (因为我已经从以前的操作中获得了组)
    size = medians.groupby(group_columns)['any column'].transform('size')
    output = medians[size == size.max()]