Pandas 如何从多重索引的数据框中删除水平

Pandas 如何从多重索引的数据框中删除水平

在本文中,我们将介绍如何从Pandas多重索引的数据框中删除水平。Pandas是一个功能强大的数据分析和数据操作工具。 Pandas的数据框具有多重索引,因此当我们需要访问数据框中的某些列或行时,就需要使用多重索引。

让我们首先看一下以下示例中的多重索引数据框:

import pandas as pd

data = {'name': ['John', 'Mike', 'Sara', 'John', 'Mike', 'Sara', 'John', 'Mike', 'Sara'],
        'subject': ['Maths', 'Maths', 'Maths', 'Science', 'Science', 'Science', 'English', 'English', 'English'],
        'score': [50, 60, 70, 80, 90, 100, 55, 65, 75]}

df = pd.DataFrame(data)
multi_index = df.set_index(['name', 'subject'])
print(multi_index)
Python

输出为:

                   score
    name  subject       
    John  Maths       50
    Mike  Maths       60
    Sara  Maths       70
    John  Science     80
    Mike  Science     90
    Sara  Science    100
    John  English     55
    Mike  English     65
    Sara  English     75
Python

如上所示,我们有一个具有多重索引的数据框,它由“name”和“subject”列组成。 现在我们将重点介绍如何从此多重索引数据框中删除“subject”水平。

阅读更多:Pandas 教程

删除水平

我们可以使用Pandas的droplevel()函数删除多重索引中的水平。 让我们来看一下如何使用此功能从上面的数据框中删除“subject”级别。

multi_index = multi_index.reset_index()
print(multi_index)
multi_index = multi_index.set_index(['name'])
print(multi_index)
multi_index = multi_index.drop(labels='subject', axis=1, level=1)
print(multi_index)
Python

在上面的代码中,我们首先通过“reset_index()”函数将多重索引转换为普通列,然后再次使用“set_index()”函数将其转换回多重索引。 然后,我们使用“droplevel()”函数从多重索引中删除了“subject”水平。 在Pandas中,“drop”函数用于从数据框中删除行或列,我们使用“axis”参数指定删除的方向, 水平为“1”,竖直为“0”。 “level”参数用于多重索引,此处我们指定要从第二级别删除“subject”。

输出为:

            name  subject  score
    0       John    Maths     50
    1       Mike    Maths     60
    2       Sara    Maths     70
    3       John  Science     80
    4       Mike  Science     90
    5       Sara  Science    100
    6       John  English     55
    7       Mike  English     65
    8       Sara  English     75

          subject  score
    name                
    John     Maths     50
    Mike     Maths     60
    Sara     Maths     70
    John   Science     80
    Mike   Science     90
    Sara   Science    100
    John   English     55
    Mike   English     65
    Sara   English     75


          score
    name        
    John     50
    Mike     60
    Sara     70
    John     80
    Mike     90
    Sara    100
    John     55
    Mike     65
    Sara     75
Python

如上所示,我们已成功删除数据框中的“subject”水平,并获得仅包含数据的新多重索引数据框。

总结

在本文中,我们介绍了使用Pandas的droplevel()函数从多重索引数据框中删除水平的方法。 首先,我们将多重索引数据框转换为普通列数据框,然后使用“set_index”函数将其转换回多重索引数据框。 最后,我们使用“drop()”和“axis”参数从数据框中删除水平。 知道如何从多重索引数据框中删除水平将使数据分析过程更为高效。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册