Iterating over a DataFrame groupby
for (k, v), ax in itertools.izip(df.groupby('cats'), axs.flat): v.boxplot(column='weight', ax=ax)