Get Mode by Group in Python – DataFrame Subgroups (2 Examples)

In this Python programming tutorial you’ll learn how to get the mode by group.

Setting up the Examples

import pandas as pd                                                               # Import pandas library
my_df = pd.DataFrame({'A':range(19, 28),                                          # Constructing a pandas DataFrame
                      'B':[6, 7, 3, 9, 1, 3, 8, 8, 9],
                      'C':range(20, 11, - 1),
                      'GRP_a':['gr1', 'gr1', 'gr2', 'gr3', 'gr1', 'gr2', 'gr2', 'gr3', 'gr3'],
                      'GRP_b':['a', 'b', 'c', 'c', 'a', 'b', 'b', 'a', 'a']})
print(my_df)
#     A  B   C GRP_a GRP_b
# 0  19  6  20   gr1     a
# 1  20  7  19   gr1     b
# 2  21  3  18   gr2     c
# 3  22  9  17   gr3     c
# 4  23  1  16   gr1     a
# 5  24  3  15   gr2     b
# 6  25  8  14   gr2     b
# 7  26  8  13   gr3     a
# 8  27  9  12   gr3     a

Example 1: Calculating Mode by Group in Python

print(my_df.groupby('GRP_a').agg(lambda x:x.value_counts().index[0]))             # Find mode by group
#         A  B   C GRP_b
# GRP_a                 
# gr1    20  1  20     a
# gr2    24  3  14     b
# gr3    26  9  12     a

Example 2: Calculating Mode by Group & Subgroup in Python

print(my_df.groupby(['GRP_a', 'GRP_b']).agg(lambda x:x.value_counts().index[0]))  # Find mode by multiple groups
#               A  B   C
# GRP_a GRP_b           
# gr1   a      23  1  20
#       b      20  7  19
# gr2   b      24  8  14
#       c      21  3  18
# gr3   a      26  8  12
#       c      22  9  17

Leave a Reply

Your email address will not be published.

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed

Menu
Top