Home > Software design >  How to rename one column(based on given position) if there are duplicate column names
How to rename one column(based on given position) if there are duplicate column names

Time:11-08

I have a dataframe with 2 duplicate columns. I need to rename one of the column based on the position given in a configuration file. Using rename() is not working because it is renaming both the columns, even though I am passing the position of the column which needs to be renamed. Could you please suggest how to achieve this? 

I want the logic to be generic as I have multiple files and each file has duplicates but different column names which are mentioned in the configuration file.

columns -  state   city   country   state
config file - 
position   HEADER
  0        statename

Df.rename(columns = {Df.columns[position]:row['HEADER']}, inplace = True)

It is not working because both the columns are renamed even when position is passed.

CodePudding user response:

IIUC you can convert the names of the column to a numpy array with to_numpy and alter the column names there. This will also the change the column name in the specified position without reassigning the new column names. You can also insert multiple positions with to_numpy unlike to_list:

Df.columns.to_numpy()[position] = row['HEADER']
  • Related