Pandas Advanced (GroupBy & Pivot Tables) Cheat Sheet
Advanced groupby aggregations, pivot_table reshaping, and MultiIndex manipulation techniques for summarizing and restructuring data in pandas.
2 PagesIntermediateMar 12, 2026
Advanced GroupBy Aggregations
Named aggregations, transforms, and custom group functions.
python
import pandas as pd# Multiple named aggregations per columnsummary = df.groupby("region").agg( total_sales=("amount", "sum"), avg_sales=("amount", "mean"), num_orders=("order_id", "count")).reset_index()# transform() adds group stats back to the original rowsdf["region_avg"] = df.groupby("region")["amount"].transform("mean")# Custom aggregation functiondf.groupby("region")["amount"].agg(lambda x: x.max() - x.min())# groupby multiple keysdf.groupby(["region", "category"])["amount"].sum()
Pivot Tables
Reshape long data into a summary matrix.
python
pivot = pd.pivot_table( df, values="amount", index="region", columns="category", aggfunc="sum", fill_value=0, margins=True, # adds row/column totals margins_name="Total")# Multiple aggregation functions at oncepd.pivot_table(df, values="amount", index="region", aggfunc=["sum", "mean", "count"])
MultiIndex & Reshaping
Convert between long and wide formats and flatten hierarchical columns.
python
# Reshape long -> widewide = df.pivot(index="date", columns="product", values="sales")# Reshape wide -> longlong = wide.reset_index().melt(id_vars="date", var_name="product", value_name="sales")# Flatten MultiIndex columns from groupby.agggrouped = df.groupby(["region", "category"]).agg({"amount": ["sum", "mean"]})grouped.columns = ["_".join(col) for col in grouped.columns]
Key Concepts
Terminology for reshaping and summarizing DataFrames.
- groupby().agg()- Apply one or more aggregation functions per column, optionally with named outputs
- transform()- Returns a result aligned to the original DataFrame's index, unlike agg() which collapses rows
- filter()- Keep or drop entire groups based on a group-level condition, e.g. group size > 10
- pivot_table vs pivot- pivot_table aggregates duplicate index/column combinations; pivot requires unique combinations
- crosstab- pd.crosstab() computes a frequency table between two or more categorical columns
- MultiIndex- Hierarchical row/column index created by groupby or pivot with multiple keys
- stack()/unstack()- Pivot a level of column labels to rows (stack) or rows to columns (unstack)
Pro Tip
Use named aggregation - df.groupby('col').agg(new_name=('col2', 'sum')) - instead of the old dict-based agg syntax; it avoids ambiguous MultiIndex columns and is the recommended modern API.
Was this cheat sheet helpful?
Explore Topics
#PandasAdvancedGroupByPivotTables#PandasAdvancedGroupByPivotTablesCheatSheet#DataScience#Intermediate#AdvancedGroupByAggregations#PivotTables#MultiIndexReshaping#KeyConcepts#MachineLearning#CheatSheet#SkillVeris
Advertisement
Sri Hayavadhana Info-Tech
Professional Web Designing Services
- Responsive Websites
- E-commerce Solutions
- SEO Friendly Design
- Fast & Secure
- Support & Maintenance