In this article, we will see how to delete a group after pandas groupby operation in Python.

Let’s first import the pandas library and create a sample data set:

import pandas as pd

data = {'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
        'Value': [1, 2, 3, 4, 5, 6]}

df = pd.DataFrame(data)

The above dataset consists of three groups (‘A‘, ‘B‘, and ‘C‘) and their corresponding values. We can use the groupby method to group the data by the ‘Group‘ column:

grouped = df.groupby('Group')

We have grouped our data. Now, let’s say we want to delete group ‘B‘ from our dataset. We can do this by using the drop method and passing the index of the rows in the ‘B‘ group.

grouped.drop(grouped.get_group('B').index, inplace=True)

In the above example, we first use the get_group method to retrieve the rows belonging to group ‘B‘, and then we pass the index of those rows to the drop method.

By using the parameter inplace=True the operation will be performed on the original dataframe.

As an alternative way, we can also use the filter method to exclude group B from our dataset.

filtered = grouped.filter(lambda x: x.name != 'B')

In the above method, we use the filter method and pass a lambda function that excludes any group with a name equal to ‘B‘. The resulting data frame filteredwill only contain the ‘A’ and ‘C’ groups.

Please note that when using the drop or filter method on a grouped data frame, the resulting data frame will no longer be grouped. If we want to continue working with the grouped data, we should re-group the data after deleting the group.

Categorized in:

Tagged in: