【发布时间】:2020-03-24 17:45:39
【问题描述】:
我有一个 multiIndex pandas 数据框。
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
当我执行df.columns 时,我得到以下结果:-
MultiIndex(levels=[['Issue'], ['high', 'med', 'low']],
labels=[[0, 0, 0], [0, 1, 2]])
我希望通过重命名 Multi_index 问题列来展平此数据框。
预期输出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
我试过这个:
df2 = df.rename(columns={'high':'Issue_high','low':'Issue_low','med':'Issue_med'}, level = 1)
我遇到错误。
rename() got an unexpected keyword argument "level"
有没有办法得到输出结构?
编辑:通过使用 df.columns = df.columns.map('_'.join) 我得到了
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')
【问题讨论】:
-
您需要在最后一次编辑后
reset_index。