用计数器替换pd.MultiIndex level 2

Ash*_*gar 1 python multi-index pandas

我有一个MultiIndexed的Pandas系列,看起来像这样:

 index1   subindex   value
---------------------------
 label1   a          2.0
          b          4.1
          c          2.3
 label2   r1         6.2
          s7         45.1
Run Code Online (Sandbox Code Playgroud)

我想把它变成以下内容:

 index1   subindex   value
--------------------------------
 label1   0          ('a', 2.0)
          1          ('b', 4.1)
          2          ('c', 2.3)
 label2   0          ('r1',6.2)
          1          ('s7',45.1)
Run Code Online (Sandbox Code Playgroud)

因此,对于级别1的每个子索引,我想用计数器替换它,但首先我想将子索引与该位置的实际值合并.在熊猫中有一个简单的方法吗?

谢谢.

piR*_*red 7

df.reset_index('subindex').apply(tuple, 1).to_frame('value').set_index(
    df.groupby('index1').cumcount().rename('subindex'), append=True)

                      value
index1 subindex            
label1 0           (a, 2.0)
       1           (b, 4.1)
       2           (c, 2.3)
label2 0          (r1, 6.2)
       1         (s7, 45.1)
Run Code Online (Sandbox Code Playgroud)