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)
输出为:
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
如上所示,我们有一个具有多重索引的数据框,它由“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)
在上面的代码中,我们首先通过“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
如上所示,我们已成功删除数据框中的“subject”水平,并获得仅包含数据的新多重索引数据框。
总结
在本文中,我们介绍了使用Pandas的droplevel()函数从多重索引数据框中删除水平的方法。 首先,我们将多重索引数据框转换为普通列数据框,然后使用“set_index”函数将其转换回多重索引数据框。 最后,我们使用“drop()”和“axis”参数从数据框中删除水平。 知道如何从多重索引数据框中删除水平将使数据分析过程更为高效。