How do I change order/grouping/level of pandas MultiIndex columns?
Since levels indices are no more mandatory you can have even more simple way to achieve the level swapping of multi-index dataframe:
df = df.swaplevel(axis='columns')
Your columns are a MultiIndex. You need to reassign the DataFrame's columns with a new MultiIndex created from swapping levels of the existing one:
df.columns = df.columns.swaplevel(0, 1)
df.sort_index(axis=1, level=0, inplace=True)
>>> df
month '1Jan' 'Feb' 'Mar'
weight extent rank weight extent rank weight extent rank
year
2000 45.1 13.442 13 46.1 14.94 17 25.1 15.02 14
2001 85.0 13.380 12 16.0 14.81 15 49.0 15.14 17
2002 90.0 13.590 15 33.0 15.13 22 82.0 14.88 10
2003 47.0 13.640 17 34.0 14.83 16 78.0 15.27 22
You can then export to csv:
df.to_csv(filename)