Create pivot tables, cross-tabulations, and use melt/stack/unstack for reshaping data.
Pivot Tables and Cross-tabulation
import pandas as pd
df = pd.read_csv('sales.csv')
# Pivot table
pivot = df.pivot_table(
values='revenue',
index='region',
columns='product',
aggfunc='sum',
fill_value=0,
margins=True # add row/col totals
)
# Simpler pivot
df.pivot(index='date', columns='product', values='sales')
# Stack and unstack
stacked = pivot.stack() # wide to long
pivot = stacked.unstack() # long to wide
# Cross-tabulation
pd.crosstab(df['dept'], df['gender'])
pd.crosstab(df['dept'], df['gender'], normalize='index') # row %
# Melt (wide to long format)
pd.melt(df, id_vars=['name'], value_vars=['q1','q2','q3'],
var_name='quarter', value_name='sales')