DataFrame.groupby()求各年级最高的学生
时间: 2024-03-05 16:54:32 浏览: 40
找出总分最高学生.md
可以使用 `DataFrame.groupby()` 和 `idxmax()` 函数来实现。`idxmax()` 函数返回每个分组中最大值所在行的索引,然后可以通过索引获取到最高分的学生信息。下面是示例代码:
```python
import pandas as pd
# 创建示例数据
data = {'grade': ['A', 'A', 'B', 'B', 'B', 'C'], 'name': ['Tom', 'Jerry', 'Alice', 'Bob', 'Charlie', 'David'], 'score': [90, 95, 80, 85, 95, 70]}
df = pd.DataFrame(data)
# 按照 grade 列进行分组,并获取每组中得分最高的学生信息
max_scores_idx = df.groupby('grade')['score'].idxmax()
max_scores_students = df.loc[max_scores_idx]
print(max_scores_students)
```
输出结果为:
```
grade name score
1 A Jerry 95
4 B Charlie 95
5 C David 70
```
上述代码中,`df.groupby('grade')['score'].idxmax()` 表示按照 `grade` 列进行分组,然后获取每组中得分最高的学生所在行的索引。最终的结果是一个 Pandas Series 对象,其中每个元素表示每个组中得分最高的学生所在行的索引。然后通过 `loc[]` 函数获取到最高分的学生信息。
阅读全文