Skip to main content
 首页 » 编程设计

python之替换数据框 MultiIndex 上的操作

2025年05月04日13cmt

我有两个数据框,我试图用另一个子字符串替换多索引级别 1 上的子字符串,但这失败了

例如我有一个数据框df

Index0   Index1    0     1     2 
A        BX       .2    .3    .9       
         CX       .34   .55   .54            
 
D        EX       .34   .44   .32 
         FX       .43.  .88.  .06 

我正在尝试用Y替换 Index1 子字符串X 以便我的结果
看起来像下面这样

Index0   Index1    0     1     2 
A        BY       .2    .3    .9       
         CY       .34   .55   .54            
 
D        EY       .34   .44   .32 
         FY       .43.  .88.  .06 

我正在使用以下功能

df.replace('X','Y') 

但是我得到以下错误

AttributeError                   Traceback (most recent   call last) 
<ipython-input-56-fc7014a2d950> in <module>() 
  8  
  9  
---> 10 df.replace('X','Y') 
 
AttributeError: 'MultiIndex' object has no attribute 'replace' 

请您参考如下方法:

或者试试这个

df.index=pd.MultiIndex.from_tuples([(x[0], x[1].replace('X', 'Y')) for x in df.index]) 
df 
Out[304]:  
             0         1         2 
a aY -0.696181 -1.929523 -1.903956 
  bY  0.071061 -0.594185 -2.005251 
b cY -0.097761  0.093667  1.780550 
  dY  0.127887  1.534395  0.352351