pandas groupby 基于多个大小限制的过滤组

pandas groupby filter groups based on multiple size constraints

我有以下代码来过滤掉大小小于 4 和大于 51 的组。我为此发出了两个语句,我认为这是非常低效的。有没有办法让我说 51 > 'size' > 4

df = df[df.groupby('id',sort=False)['id'].transform('size') > 4]
df = df[df.groupby('id')['id'].transform('size') < 51]

Series.betweeninclusive=False 一起使用:

df[df.groupby('id',sort=False)['id'].transform('size').between(4, 51, inclusive=False)]