.agg() — свёртка группы в одно значение (sum, mean). .transform() — возвращает значение для каждой строки группы (полезно для добавления колонки «среднее по группе»). .apply() — произвольная функция, может вернуть и скаляр, и DataFrame.
df.groupby(["category", "region"]).agg({"revenue": "sum"}) — multi-key groupby. Результат — DataFrame с MultiIndex; .reset_index() уплощает обратно в плоскую таблицу.
df["share"] = df["value"] / df.groupby("group")["value"].transform("sum") — transform сохраняет размер DataFrame, поэтому деление работает поэлементно.
pd.pivot_table(df, index="category", columns="month", values="revenue", aggfunc="sum") — эквивалент groupby + unstack. На собесе ждут что ты знаешь оба способа.
На датасете до 1М строк — pandas быстрее (всё в памяти). От 10М строк и выше — SQL (нормальная БД с индексами обгонит). На собесе важно показать что ты знаешь оба инструмента.
Pandas: основы · Pandas merge / join · Pandas time series · NumPy векторизация · scipy: A/B-тесты · sklearn для аналитика · Графики: matplotlib / seaborn