首页 > 解决方案 > 如何使用python排除一个groupby中的多个组?

问题描述

我在 Python 中使用 groupby 按地区和年份对客户数量进行了分组。但是我想从区域组中删除几个区域。

我知道为了从 a 中排除一组,groupby您可以使用以下代码:

grouped = df.groupby(['Region'])
df1 = df.drop(grouped.get_group(('Southwest')).index).

因此,我最初尝试了以下方法:

grouped = df.groupby(['Region'])
df1 = df.drop(grouped.get_group(('Southwest','Northwest')).index)

然而,这给了我明显的错误('Southwest','Northwest')

现在我想知道是否有一种方法可以一次删除多个组,而不必为要删除的每个区域重复输入上述代码。

我希望最终查询的输出类似于下图,但是应该删除有关西北和西南地区的信息。 分组结果

标签: pythonpandas-groupby

解决方案


不是df1 = df.drop(grouped.get_group(('Southwest','Northwest')).index)grouped.get_group将单个名称作为参数。如果要删除多个组,可以使用df1 = df.drop((grouped.get_group('Southwest').index, grouped.get_group('Northwest').index))sincedrop可以将列表作为输入。

作为旁注,('Southwest')评估为'Southwest'(即它不是元组)。如果你想制作一个大小为 1 的元组,它是('Southwest', )


推荐阅读