Get Median by Group in pandas DataFrame Column in Python (2 Examples)
This article shows how to calculate the median value by group in the Python programming language.
Preparing the Examples
import pandas as pd # Load pandas library |
import pandas as pd # Load 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 |
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 Median by Group in Python
print(my_df.groupby('GRP_a').median()) # Computing the column median by group # A B C # GRP_a # gr1 20 6 19 # gr2 24 3 15 # gr3 26 9 13 |
print(my_df.groupby('GRP_a').median()) # Computing the column median by group # A B C # GRP_a # gr1 20 6 19 # gr2 24 3 15 # gr3 26 9 13
Example 2: Calculating Median by Group & Subgroup in Python
print(my_df.groupby(['GRP_a', 'GRP_b']).median()) # Computing the column median by multiple groups # A B C # GRP_a GRP_b # gr1 a 21.0 3.5 18.0 # b 20.0 7.0 19.0 # gr2 b 24.5 5.5 14.5 # c 21.0 3.0 18.0 # gr3 a 26.5 8.5 12.5 # c 22.0 9.0 17.0 |
print(my_df.groupby(['GRP_a', 'GRP_b']).median()) # Computing the column median by multiple groups # A B C # GRP_a GRP_b # gr1 a 21.0 3.5 18.0 # b 20.0 7.0 19.0 # gr2 b 24.5 5.5 14.5 # c 21.0 3.0 18.0 # gr3 a 26.5 8.5 12.5 # c 22.0 9.0 17.0