Changing multiple column names but not all of them - Pandas Python

dataframe, pandas, python

Solution

say you have a dictionary of the new column names and the name of the column they should replace:

df.rename(columns={'old_col':'new_col', 'old_col_2':'new_col_2'}, inplace=True)

But, if you don't have that, and you only have the indices, you can do this:

column_indices = [1,4,5,6]
new_names = ['a','b','c','d']
old_names = df.columns[column_indices]
df.rename(columns=dict(zip(old_names, new_names)), inplace=True)

Problem

I would like to know if there is a function to change specific column names but without selecting a specific name or without changing all of them. I have the code: ``` df=df.rename(columns = {'nameofacolumn':'newname'}) ``` But with it i have to manually change each one of them writing each name. Also to change all of them I have ``` df = df.columns['name1','name2','etc'] ``` I would like to have a function to change columns 1 and 3 without writing their names just stating their location.

Original source