我有一个具有以下结构的DataFrame(即索引有一些词汇交叉点):
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
我希望将此DataFrame转换为此(即使用某些正则表达式从索引中获取多索引):
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
答案 0 :(得分:3)
我可能只是使用map:
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的函数获取每个项目并返回一个元组。