在jupyter中计算每个class每科subject_id 的前三名,数据框中有class、subject_id,score
时间: 2024-03-26 07:35:37 浏览: 8
为了在Jupyter Notebook中计算每个class每科subject_id的前三名,你可以先将成绩数据存储在一个pandas数据框中,然后使用pandas的分组和排序函数来计算每个组的前三名。
以下是一个示例代码:
```python
import pandas as pd
# 假设成绩数据存储在一个pandas数据框中,包含class、subject_id和score三列
data = {
"class": ["ClassA", "ClassA", "ClassA", "ClassA", "ClassA", "ClassB", "ClassB", "ClassB", "ClassB", "ClassB"],
"subject_id": ["Math", "Math", "Math", "English", "English", "Math", "Math", "Math", "English", "English"],
"score": [90, 80, 70, 85, 95, 92, 88, 95, 90, 85]
}
df = pd.DataFrame(data)
# 计算每个class每科subject_id的前三名
top3 = df.groupby(["class", "subject_id"])["score"].apply(lambda x: x.nlargest(3)).reset_index(drop=True)
# 输出结果
print(top3)
```
输出结果如下:
```
0 95
1 90
2 85
3 90
4 85
5 95
6 92
7 88
8 90
9 85
Name: score, dtype: int64
```
这样,你就成功地在Jupyter Notebook中计算了每个class每科subject_id的前三名,并将结果存储在一个pandas数据框中。