Pandas 根据条件删除整个熊猫组

Pandas 根据条件删除整个熊猫组,pandas,pandas-groupby,filtering,Pandas,Pandas Groupby,Filtering,我有这个df: Plate Route Speed Dif hour 0 0660182 RUTA 66 10 NaN 13 1 939CH001M RUTA 51 22 33.0 13 2 596NZ008M RUTA 102 0 34.0 13 3 0790024

我有这个df:

       Plate       Route        Speed       Dif     hour
0      0660182      RUTA 66     10          NaN     13
1      939CH001M    RUTA 51     22          33.0    13
2      596NZ008M    RUTA 102    0           34.0    13
3      0790024      RUTA 79     0           33.0    13
4      947CH045M    RUTA 50     28          33.0    13
...     ...     ...     ...     ...     ...
1279634 0120414     RUTA 12     0           NaN     5
1279635 1090016     200826      0           NaN     5
1279636 0350144     RUTA 35     0           NaN     5
1279637 006908      RUTA 106    0           NaN     5
1279638 0340071     RUTA 34     1           NaN     5
每当“Dif”为60或更多时,我想过滤板组(每个板有许多寄存器)。所以,我用这里的帖子试着:

f = lambda df: not df[df['Dif'] < 60].empty
filtered = df.groupby('Plate').filter(f)
f=lambda-df:not-df[df['Dif']<60]。空
过滤=df.groupby('Plate')。过滤器(f)
对于这个groupby,我仍然得到超过60的Dif值。这里怎么了?或者,如何使用groupby进行此筛选?(尝试使用大于,以防我的逻辑失败,但仍然无法获得)


感谢您的帮助。

您可以使用
groupby.transform

# only select groups whose `Dif` are all < 60
mask = (df['Dif']<60).groupby(df['Plate']).transform('all')
df[mask]
#仅选择“Dif”均小于60的组
掩码=(df['Dif']
f = lambda df: (df['Dif']<60).all()
filtered = df.groupby('Plate').filter(f)