Home > OS >  how to rename groups of nested columns in pandas?
how to rename groups of nested columns in pandas?

Time:02-20

The dataframe in pandas looks like that:

enter image description here

I need to rename them correspondingly to buy_1, buy_2, buy_3, ... sell_1, sell_2

What is the most efficient way to do it?

CodePudding user response:

You can try with format

df.columns = df.columns.map('{0[0]}_{0[1]}'.format)

CodePudding user response:

Try:

df.set_axis(df.columns.map('_'.join),axis=1)

If your second level is int and not str, either of the below would work with still using join().

df.set_axis(df.columns.map(lambda x: '_'.join([str(i) for i in x])),axis=1)

df.set_axis(df.columns.set_levels(df.columns.levels[1].astype(str),level=1).map('_'.join),axis=1)
  • Related