使用索引中的模式将索引数据帧转换为多索引

2024-09-29 04:19:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据帧具有以下结构(即索引具有一些词汇交叉点):

        a         b     
        bar  foo  bah  foo
A1B1     1    0    3    2
A1B2     5    4    7    6
A2B1     9    8   11   10
A2B2    13   12   15   14

我希望将此数据帧转换为以下内容(即,使用正则表达式从索引转换为多索引):

        a         b     
        bar  foo  bah  foo
A1  B1   1    0    3    2
    B2   5    4    7    6
A2  B1   9    8   11   10
    B2  13   12   15   14

Tags: 数据a2fooa1bar结构b2词汇
1条回答
网友
1楼 · 发布于 2024-09-29 04:19:50

我可能只用地图:

In [11]: df.index = pd.MultiIndex.from_tuples(df.index.map(lambda x: (x[0:2], x[2:4])))

In [12]: df
Out[12]:
        a       b
      bar foo bah foo
A1 B1   1   0   3   2
   B2   5   4   7   6
A2 B1   9   8  11  10
   B2  13  12  15  14

只要传递给map的函数接受每个项并返回一个元组,就可以使用regex或其他任何函数。

相关问题 更多 >