I have a multiindex dataframe:
unique cat numerical
c f b d a e
0 2 5 1 3 0 4
1 8 11 7 9 6 10
2 14 17 13 15 12 16
I'm trying to get the column names under 'unique'
and 'cat'
. For just 'unique'
alone, I did:
print(df.loc[:,'unique'].columns)
yielding:
Index(['c', 'f'], dtype='object')
Evidently, that works. Then, I tried to it for 2 columns at once:
new_df = df.loc[:,['cat','unique']].swaplevel(0,1,1)
print(new_df)
yields:
c f b d
unique unique cat cat
0 2 5 1 3
1 8 11 7 9
2 14 17 13 15
So far, so good. But when I try:
print(new_df.columns)
I get:
MultiIndex(levels=[['a', 'b', 'c', 'd', 'e', 'f'], ['cat', 'numerical', 'unique']],
labels=[[2, 5, 1, 3], [2, 2, 0, 0]])
Which is the same as when printing the columns of the original dataframe. What's going on?