我有以下多索引数据帧:
0 M1 M2
bla C LQ C LQ
0 1 1.6 0.1 2.7 0.5
1 2 <LQ 0.2 4.1 0.3
2 3 NaN NaN NaN NaN
3 4 3.2 0.1 <LQ 0.4
此外,我创建了一个'C'
是"<LQ"
的掩码,去掉了第二级
mask = df.xs('C',level=1, axis=1) == "<LQ"
我想去
'LQ'
列中的值替换'<LQ'
'LQ'
列并将列减少到一个级别,保留第一个级别的名称,其中第二个级别为['C', 'LQ']
,其余级别保留第二个级别的名称,如下所示:地址:
bla M1 M2
0 1 1.6 2.7
1 2 0.2 4.1
2 3 NaN NaN
3 4 3.2 0.4
同时使用遮罩跟踪替换的值(例如,用于以后的打印)
生成df的代码:
df = pd.DataFrame({(0,'bla'): [1,2,3,4],
('M1', 'C'): [1.6,'<LQ',np.nan,3.2],
('M1', 'LQ'): [0.1,0.2,np.nan,0.1],
('M2', 'C'): [2.7,4.1,np.nan,'<LQ'],
('M2', 'LQ'): [0.5,0.3,np.nan,0.4]})
使用^{} 将值替换为} 删除此级别,同时通过^{} 删除第一级} :
<LQ
替换为LQ
数据帧,然后通过^{MultiIndex
和最后一级^{如果只有一列} 与^{} 和最后一列^{} 一起使用:
0, bla
,则将^{相关问题 更多 >
编程相关推荐