我有一个多索引数据帧
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 issue列来扁平化这个数据帧
预期输出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')
如果所有值都是字符串,请将^{} 与
join
一起使用:或
format
或f-string
s-也处理级别中的数值:将} :
MultiIndex in Index
转换为列的最后^{相关问题 更多 >
编程相关推荐