Pandas - remove the label of the column index

Viewed 43815

I have a dataframe as follows:

PLEASE_REMOVE  2013  2014  2015
 THIS_IS_EASY
-------------------------------
          Bob     0     3     4
         Mary     2     3     6

The years (2013, 2014, 2015) are the column index labels. The names (Mary, Bob) are the row index labels.

I have somehow managed to get labels for the row indices and column indices.

Using df.index.names = [''] I can remove the THIS_IS_EASY bit.

How can I remove the PLEASE_REMOVE bit?

Desired output is:

               2013  2014  2015
 -------------------------------
          Bob     0     3     4
         Mary     2     3     6
5 Answers

New answer for pandas 1.x, submitted by Ian Logie

df.columns.name = None

 

Old Answer from Oct 2018

Simply delete the name of the columns:

del df.columns.name

Also, note that df.index.names = [''] is not quite the same as del df.index.name.

In Pandas 1.0.3 the following works:

df.columns.name = None

The 'accepted answer' above, del df.columns.name, leads to: 'AttributeError: can't delete attribute'

In Pandas 1.0.3 I have used the following :

df.rename_axis(None, axis = 1)

columns.name will not work since poster want to remove the index name

df.index.name = None
Related