将MultiIndex DataFrame转化为标准索引DataFrame

2 投票
1 回答
30 浏览
提问于 2025-04-14 16:31

我该如何把一个多重索引的DataFrame转换成标准索引的DataFrame呢?

import pandas as pd
df1 = pd.DataFrame({'old_code': ['00000001', '00000002', '00000003', '00000004'],
'Desc': ['99999991', '99999992 or 99999922', 'Use 99999993 or 99999933', '99999994']},
)
df1.set_index('old_code', inplace=True)
df2=df1["Desc"].str.extractall(r"(?P<new_code>\d{7,9})")
print(df2.head(10))

我的输出看起来是这样的

old_code match  new_code        
00000001 0      99999991
00000002 0      99999992
         1      99999922
00000003 0      99999993
         1      99999933
00000004 0      99999994

我想把它变成这样的格式?

old_code   new_code        
00000001   99999991
00000002   99999992
00000002   99999922
00000003   99999993
00000002   99999933
00000004   99999994

1 个回答

1

你可以去掉第二级索引,然后重置索引:

print(df2.droplevel(1).reset_index())

输出结果是:

   old_code  new_code
0  00000001  99999991
1  00000002  99999992
2  00000002  99999922
3  00000003  99999993
4  00000003  99999933
5  00000004  99999994

撰写回答