%pylab inline
import pandas as pd
transactions_text = """\
trip,category,amount
Boston,Airfare,560
Boston,Meals,25
Boston,Meals,35
Boston,Meals,20
Boston,Hotel,450
New York,Airfare,670
Atlanta,Airfare,340
New York,Meals,60
New York,Meals,55
New York,Hotel,250
Atlanta,Meals,34
Atlanta,Meals,22
Atlanta,Meals,51
"""
from StringIO import StringIO
df = pd.read_csv(StringIO(transactions_text))
df.head()
df.groupby(['trip']).head()
df.groupby(['trip']).sum()
df.groupby(['category']).sum()
grid = df.groupby(['trip', 'category']
).sum().unstack('category').fillna(0)
grid['Totals'] = df.groupby(['trip']).sum()
grid