如何在 pandas 中展平 multiindex(附示例)


您可以使用以下基本语法来展平 pandas 中的 MultiIndex:

 #flatten all levels of MultiIndex
df. reset_index (inplace= True )

#flatten specific levels of MultiIndex
df. reset_index (inplace= True , level = [' level_name '])

以下示例展示了如何在实践中使用此语法。

示例 1:展平 Pandas 中的所有级别的 MultiIndex

假设我们有以下 pandas MultiIndex DataFrame:

 import pandas as pd

#createDataFrame
index_names = pd. MultiIndex . from_tuples ([('Level1','Lev1', 'L1'),
                                       ('Level2','Lev2', 'L2'),
                                       ('Level3','Lev3', 'L3'),
                                       ('Level4','Lev4', 'L4')],
                                       names=['Full','Partial', 'ID'])

data = {'Store': ['A','B','C','D'],
        'Sales': [12, 44, 29, 35]}

df = pd. DataFrame (data, columns = [' Store ',' Sales '], index=index_names)

#view DataFrame
df

			Store Sales
Full Partial ID		
Level1 Lev1 L1 A 17
Level2 Lev2 L2 B 22
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35

我们可以使用以下语法将 MultiIndex 的每个级别展平为 DataFrame 的列:

 #flatten every level of MultiIndex 
df. reset_index (inplace= True )

#view updated DataFrame
df

        Full Partial ID Store Sales
0 Level1 Lev1 L1 A 12
1 Level2 Lev2 L2 B 44
2 Level3 Lev3 L3 C 29
3 Level4 Lev4 L4 D 35

请注意,MultiIndex 的每个级别现在都是 DataFrame 中的一列。

示例 2:展平 Pandas 中 MultiIndex 的特定级别

假设我们有与前面的示例相同的 pandas DataFrame:

 #view DataFrame
df

Store Sales
Full Partial ID		
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35

以下代码显示了如何展平 MultiIndex 的单个特定级别:

 #flatten 'ID' level only
df. reset_index (inplace= True ,level=[' ID '])

#view updated DataFrame
df

		ID Store Sales
Full Partial			
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35

下面的代码展示了如何展平 MultiIndex 的几个特定级别:

 #flatten 'ID' level only
df. reset_index (inplace= True ,level=[' Partial ',' ID '])

#view updated DataFrame
df

	Partial ID Store Sales
Full				
Level1 Lev1 L1 A 12
Level2 Lev2 L2 B 44
Level3 Lev3 L3 C 29
Level4 Lev4 L4 D 35

其他资源

以下教程解释了如何在 pandas 中执行其他常见功能:

如何在 Pandas 中将索引转换为列
如何重命名 Pandas 中的索引
如何在 Pandas 中将列设置为索引

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注