groupby answers questions like "revenue per region". It works in three steps, often called split, apply, combine: split the rows into groups by a column, apply a calculation to each group, and combine the answers into one result.
df.groupby("region")["revenue"].sum()
Read it left to right: group by region, take the revenue column, add it up. The result is a Series with one value per region and the regions as its index, sorted A to Z.
Swap sum() for mean(), count(), min(), max() or median(). size() counts the rows in each group.
On its own, df.groupby("region") doesn't show anything useful, just a GroupBy object. It needs a calculation after it.
Pass a list to group by several columns: df.groupby(["region", "channel"]). The result then has one row per combination, with a two-level index.