I have a multiIndex pandas dataframe.
Issue
high med low
name age empId
Jack 44 Ab1 0 1 0
Bob 34 Ab2 0 0 1
Mike 52 Ab6 1 1 0
When I'm executing df.columns
I'm getting the following result:-
MultiIndex(levels=[['Issue'], ['high', 'med', 'low']],
labels=[[0, 0, 0], [0, 1, 2]])
I'm looking to flatten this dataframe by renaming the Multi_index issue columns.
Expected output df:
name age empId Issue_high Issue_med Issue_low
Jack 44 Ab1 0 1 0
Bob 34 Ab2 0 0 1
Mike 52 Ab6 1 1 0
I tried this:
df2 = df.rename(columns={'high':'Issue_high','low':'Issue_low','med':'Issue_med'}, level = 1)
Im getting error.
rename() got an unexpected keyword argument "level"
Is there any way to get the output structure?
Edit: By using df.columns = df.columns.map('_'.join)
I'm getting
Issue_high Issue_med Issue_low
name age empId
Jack 44 Ab1 0 1 0
Bob 34 Ab2 0 0 1
Mike 52 Ab6 1 1 0
df.columns
>>> Index(['Issue_high',
'Issue_med', 'Issue_low'],
dtype='object')