groupby and aggregation

import seaborn as sns
df_penguins = sns.load_dataset('penguins')
df_penguins
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex
0 Adelie Torgersen 39.1 18.7 181.0 3750.0 Male
1 Adelie Torgersen 39.5 17.4 186.0 3800.0 Female
2 Adelie Torgersen 40.3 18.0 195.0 3250.0 Female
3 Adelie Torgersen NaN NaN NaN NaN NaN
4 Adelie Torgersen 36.7 19.3 193.0 3450.0 Female
... ... ... ... ... ... ... ...
339 Gentoo Biscoe NaN NaN NaN NaN NaN
340 Gentoo Biscoe 46.8 14.3 215.0 4850.0 Female
341 Gentoo Biscoe 50.4 15.7 222.0 5750.0 Male
342 Gentoo Biscoe 45.2 14.8 212.0 5200.0 Female
343 Gentoo Biscoe 49.9 16.1 213.0 5400.0 Male

344 rows × 7 columns

# group by
grouped = df_penguins.groupby(['species', 'island', 'sex'])
grouped.agg(['mean', 'median'])
bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
mean median mean median mean median mean median
species island sex
Adelie Biscoe Female 37.359091 37.75 17.704545 17.70 187.181818 187.0 3369.318182 3375.0
Male 40.590909 40.80 19.036364 18.90 190.409091 191.0 4050.000000 4000.0
Dream Female 36.911111 36.80 17.618519 17.80 187.851852 188.0 3344.444444 3400.0
Male 40.071429 40.25 18.839286 18.65 191.928571 190.5 4045.535714 3987.5
Torgersen Female 37.554167 37.60 17.550000 17.45 188.291667 189.0 3395.833333 3400.0
Male 40.586957 41.10 19.391304 19.20 194.913043 195.0 4034.782609 4000.0
Chinstrap Dream Female 46.573529 46.30 17.588235 17.65 191.735294 192.0 3527.205882 3550.0
Male 51.094118 50.95 19.252941 19.30 199.911765 200.5 3938.970588 3950.0
Gentoo Biscoe Female 45.563793 45.50 14.237931 14.25 212.706897 212.0 4679.741379 4700.0
Male 49.473770 49.50 15.718033 15.70 221.540984 221.0 5484.836066 5500.0
grouped = df_penguins.groupby(['island'])
grouped['body_mass_g'].agg(['mean', 'std'])
mean std
island
Biscoe 4716.017964 782.855743
Dream 3712.903226 416.644112
Torgersen 3706.372549 445.107940
grouped = df_penguins.groupby(['species'])
grouped['body_mass_g'].agg(['mean', 'std', 'max'])
mean std max
species
Adelie 3700.662252 458.566126 4775.0
Chinstrap 3733.088235 384.335081 4800.0
Gentoo 5076.016260 504.116237 6300.0