You can use the following syntax to calculate the mode in a GroupBy object in pandas:

df.groupby(['group_var'])['value_var'].agg(pd.Series.mode)

The following example shows how to use this syntax in practice.

**Example: Calculate Mode in a GroupBy Object**

Suppose we have the following pandas DataFrame that shows the points scored by basketball players on various teams:

**import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
'points': [10, 10, 12, 15, 19, 23, 20, 20, 26]})
#view DataFrame
print(df)
team points
0 A 10
1 A 10
2 A 12
3 A 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26**

We can use the following syntax to calculate the mode points value for each team:

#calculate mode points value for each team df.groupby(['team'])['points'].agg(pd.Series.mode) team A 10 B [19, 23] C 20 Name: points, dtype: object

Here’s how to interpret the output:

- The mode points value for team A is
**10**. - The mode points values for team B are
**19**and**23**. - The mode points value for team C is
**20**.

If one group happens to have multiple modes then you can use the following syntax to display each mode on a different row:

#calculate mode points value for each team df.groupby(['team'])['points'].apply(pd.Series.mode) team A 0 10 B 0 19 1 23 C 0 20 Name: points, dtype: int64

**Note**: You can find the complete documentation for the GroupBy operation in pandas here.

**Additional Resources**

The following tutorials explain how to perform other common operations in pandas:

Pandas: How to Calculate Cumulative Sum by Group

Pandas: How to Count Unique Values by Group

Pandas: How to Calculate Correlation By Group