MST

星途 面试题库

面试题:Python Pandas高级索引之多层索引筛选

给定一个具有多层索引(例如行索引包含'班级'和'学号',列索引包含'科目'和'成绩类型')的DataFrame,如何筛选出'一班'中'语文'科目'平时成绩'大于90的数据,用Python代码展示实现过程。
12.6万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import pandas as pd

# 假设已经有这样一个多层索引的DataFrame
# 这里只是示例,实际使用时要根据真实数据来构造
data = {
    ('语文', '平时成绩'): [85, 92, 88],
    ('语文', '期末成绩'): [90, 88, 95],
    ('数学', '平时成绩'): [90, 85, 92],
    ('数学', '期末成绩'): [88, 90, 85]
}
index = pd.MultiIndex.from_tuples([
    ('一班', '001'),
    ('一班', '002'),
    ('二班', '001')
], names=['班级', '学号'])
df = pd.DataFrame(data, index=index)

result = df.loc[('一班', slice(None)), ('语文', '平时成绩')]
result = result[result > 90]
print(result)