I have this datasate now:
animal age count
dogs 1 49
2 134
3 147
4
You could use pd.pivot:
In [25]: result = df.pivot(index='animal', columns='age', values='count')
In [26]: result
Out[26]:
age 1 2 3 4
animal
cats 189 254 259 261
dogs 49 134 147 154
In [27]: result.columns = ['age{:d}'.format(col) for col in result.columns]
In [28]: result
Out[28]:
age1 age2 age3 age4
animal
cats 189 254 259 261
dogs 49 134 147 154