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