I make dataframe like this.
df = pd.DataFrame({
\'class\' : [\'A\', \'A\', \'A\', \'A\', \'A\', \'B\', \'B\', \'B\', \'B\', \'B\'],
\'number\' : [1,2
I like @jezrael answer a lot, but just for completeness - you can also use pandas.DataFrame.pivot_table instead of set_index + unstack:
>>> df.pivot_table(index='number', columns='class').swaplevel(axis=1).sort_index(1)
class A B
english math english math
number
1 40 90 87 67
2 21 20 89 89
3 68 50 54 79
4 89 30 21 45
5 90 57 23 23