Renaming the column names of pandas dataframe is not working as expected - python

I am having below pandas dataframe df. I am trying to rename the column names but it not working as expected.

Code:

 mapping = {df.columns[0]:'Date', df.columns[1]: 'A', df.columns[2]:'B', df.columns[3]: 'C',df.columns[4]:'D', df.columns[5]: 'E',df.columns[6]:'F', df.columns[7]: 'G',df.columns[8]:'H', df.columns[9]: 'J'} df.rename(columns=mapping) 

Output of df.columns:

MultiIndex(levels=[['A Index', 'B Index', 'C Index', 'D Index', 'E Index', 'F Index', 'G Index', 'H Index', 'I Index', 'J Index', 'K Index', 'L Index', 'M Index', 'N Index', 'O Index', 'date', 'index'], ['PX_LAST', '']], labels=[[16, 15, 11, 9, 10, 6, 3, 4, 2, 5, 14, 1, 13, 12, 7, 0, 8], [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], names=['ticker', 'field'])

Even after running the code, column name stays the same. Can anyone help rename column names of this dataframe.

3 Answers

Because you know the order of the columns already why not just use:

df.columns = ['Date', 'a', 'b', 'c', 'd', 'e', 'f' 'g', 'h', 'i', 'j']

Otherwise if you want to use rename you will need to assign it to a variable:

 mapping = {df.columns[0]:'Date', df.columns[1]: 'A', df.columns[2]:'B', df.columns[3]: 'C',df.columns[4]:'D', df.columns[5]: 'E',df.columns[6]:'F', df.columns[7]: 'G',df.columns[8]:'H', df.columns[9]: 'J'} df = df.rename(columns=mapping)
3

Adding inplace=True to the rename call will work.

Though, I'm not sure what the result is if I don't specify inplace=True, since I don't see any change.

2

Given the official documentation from pandas, the default value on axis parameter is 0 (meaning index).

Thus, changing your command to:

df.rename(columns = mapping, axis = 1)

, where axis equal to 1 means columns, will work as expected.

Also, as mentioned before, you can use the inplace = True so you won't have to reassign your updated dataframe.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like