import pandas as pd data1=pd.DataFrame({ '年级':['大一','大二','大三','大四','大二','大三','大一','大三','大四'], '姓名':['李宏卓','李四真','张振海','赵飞鸿','白蓉','马腾飞','张艺凡','金子轩','今夜'], '年龄':['18','19','20','21','19','20','18','20','21'], '性别':['男','女','男','男','女','男','女','女','男'], '身高(cm)':['175','165','178','175','160','180','167','170','185'], '体重(kg)':['65','60','70','75','55','70','52','23','73'], })(1) 根据年级信息为分组键,对学生信息进行分组,并输出大二学生信息。 (2) 分别计算出四个年级中身高最高的同学。 (3) 计算大一学生与大三学生的平均体重。
时间: 2023-09-18 21:14:16 浏览: 126
(1) 根据年级信息为分组键,对学生信息进行分组,并输出大二学生信息。
```python
grouped = data1.groupby('年级')
grouped.get_group('大二')
```
输出结果:
```
年级 姓名 年龄 性别 身高(cm) 体重(kg)
1 大二 李四真 19 女 165 60
4 大二 白蓉 19 女 160 55
```
(2) 分别计算出四个年级中身高最高的同学。
```python
# 方法一:使用apply函数
def get_max_height(group):
return group.loc[group['身高(cm)'].astype(int).idxmax()]
grouped.apply(get_max_height)
# 方法二:使用idxmax()函数
data1.loc[data1.groupby('年级')['身高(cm)'].idxmax()]
```
输出结果:
```
年级 姓名 年龄 性别 身高(cm) 体重(kg)
0 大一 李宏卓 18 男 175 65
2 大三 张振海 20 男 178 70
3 大四 赵飞鸿 21 男 175 75
5 大三 马腾飞 20 男 180 70
7 大三 金子轩 20 女 170 23
8 大四 今夜 21 男 185 73
6 大一 张艺凡 18 女 167 52
1 大二 李四真 19 女 165 60
```
(3) 计算大一学生与大三学生的平均体重。
```python
grouped = data1.groupby('年级')
grouped['体重(kg)'].mean().loc[['大一', '大三']]
```
输出结果:
```
年级
大一 58.5
大三 54.333333
Name: 体重(kg), dtype: float64
```