如何使用python排除一个组中的多个组?

时间:2019-04-26 06:49:54

标签: python pandas-groupby

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

我知道,为了从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')

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

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

1 个答案:

答案 0 :(得分:0)

不是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)),因为drop可以将列表作为输入。

请注意,('Southwest')的取值为'Southwest'(即不是元组)。如果您要制作一个大小为1的元组,则为('Southwest', )