Tom_Hanks
Tom_Hanks

Reputation: 527

How to rename columns of dataframe that has same column names?

I have dataframes that have the same column names as follows

df1=pd.DataFrame({'Group1':['a','b','c','d','e'],'Group2':["f","g","h","i","j"],'Group3':['k','L','m','n',"0"]})


df2=pd.DataFrame({'Group1':[0,0,2,1,0],'Group2':[1,2,0,0,0],'Group3':[0,0,0,1,1]})

For some reasons, I want to concatenate these dataframe as follows.

dfnew=pd.concat([df1[["Group1","Group2"]], df2[["Group1","Group2"]]], axis=1)

I want to rename the columns of this new dataframe, thus tried below.

dfnew.columns={"1","2","3","4"}

I expected the order of the columns would be 1,2,3,4, but the actual result was 4,3,1,2 instead. I do not know why this happens. If someone could advise me, I would appreciate it very much.

In addition, I need to concatenate many dataframes for future work. (i.e. concatenate df1,df2, df3...df1000). Is there a good way to rename columns as "1,2,3,4.....1000"? because typing these numbers is lots of work.

Thank you.

Upvotes: 1

Views: 1366

Answers (2)

fmarm
fmarm

Reputation: 4284

Use the brackets to ensure that the columns order is preserved

dfnew.columns=["1","2","3","4"]

Upvotes: 0

milos.ai
milos.ai

Reputation: 3930

To rename columns you can use this syntax:

dfnew.columns=["1","2","3","4"]

In future , if you want to rename 1000 columns as you have asked maybe you can do something like this:

dfnew.columns=[str(i) for i in range(1,1001)]

Upvotes: 1

Related Questions