说我有一个像这样的数据框:
我知道我可以降低等级,以便获得专栏:['Season','Players','Teams']。熊猫中是否有一个函数可以将“第一支球队”的名称折叠到一列中,以便整个列都显示“第一支球队”?
答案 0 :(得分:5)
IIUC,您可以做一些不同的事情,这有两种方法:
伪数据帧,
df = pd.DataFrame(np.random.randint(0,100,(5,3)),
columns = pd.MultiIndex.from_tuples([('Season', 'Season'),
('First team', 'Players'),
('First team', 'Teams')]))
输入虚拟数据帧:
Season First team
Season Players Teams
0 28 41 53
1 62 87 87
2 43 94 4
3 23 12 93
4 14 43 62
然后使用droplevel
:
df = df.droplevel(0, axis=1)
输出:
Season Players Teams
0 54 94 19
1 54 47 91
2 56 35 40
3 37 68 14
4 17 78 68
或使用列表理解功能flatten multiindex column header:
df.columns = [f'{i}_{j}' for i, j in df.columns]
#Also, can use df.columns = df.columns.map('_'.join)
df
输出:
Season_Season First team_Players First team_Teams
0 54 94 19
1 54 47 91
2 56 35 40
3 37 68 14
4 17 78 68