1-3题代码怎么写?
时间: 2024-11-15 13:22:46 浏览: 13
java代码-p51 习题3
根据提供的文档内容,以下是针对第1至第3题的Python代码示例:
### 第1题
**题目描述**:
现有一组数据如表所示:
| Name | Gender | Age | Height | Class |
|------|--------|-----|--------|-------|
| 小明 | 男 | 20 | 178 | 1 班 |
| 小花 | 女 | 22 | 165 | 1 班 |
| 小兰 | 女 | 19 | 163 | 2 班 |
| 小胜 | 男 | 23 | 175 | 1 班 |
**任务**:
1. 创建 DataFrame 类的对象
2. 根据性别分组,并查看分组信息
3. 根据班级进行分组,并查看分组信息
4. 计算各班级的平均年龄和最高身高
**代码实现**:
```python
import pandas as pd
# 1. 创建 DataFrame 对象
data = {
'Name': ['小明', '小花', '小兰', '小胜'],
'Gender': ['男', '女', '女', '男'],
'Age': [20, 22, 19, 23],
'Height': [178, 165, 163, 175],
'Class': ['1 班', '1 班', '2 班', '1 班']
}
df = pd.DataFrame(data)
# 2. 根据性别分组,并查看分组信息
gender_group = df.groupby('Gender')
print("按性别分组的信息:")
print(gender_group.describe())
# 3. 根据班级进行分组,并查看分组信息
class_group = df.groupby('Class')
print("\n按班级分组的信息:")
print(class_group.describe())
# 4. 计算各班级的平均年龄和最高身高
class_stats = class_group.agg({'Age': 'mean', 'Height': 'max'})
print("\n各班级的平均年龄和最高身高:")
print(class_stats)
```
### 第2题
**题目描述**:
现有一组数据保存在 Excel 文件中,如下:
| Name | Grade | Height |
|------|-------|--------|
| ... | ... | ... |
**任务**:
1. 读取文件
2. 根据年级一列对其进行分组
3. 查看分组信息
4. 分别找出大一到大四这四个年级中身高最高的同学
5. 计算大一学生与大三学生的平均体重
**代码实现**:
```python
import pandas as pd
# 1. 读取文件
file_path = 'path_to_your_excel_file.xlsx'
df = pd.read_excel(file_path)
# 2. 根据年级一列进行分组
grade_group = df.groupby('Grade')
# 3. 查看分组信息
print("按年级分组的信息:")
print(grade_group.describe())
# 4. 分别找出大一到大四这四个年级中身高最高的同学
tallest_students = grade_group['Height'].idxmax()
tallest_info = df.loc[tallest_students]
print("\n各年级身高最高的同学:")
print(tallest_info)
# 5. 计算大一学生与大三学生的平均体重
freshman_weight_mean = df[df['Grade'] == '大一']['Weight'].mean()
junior_weight_mean = df[df['Grade'] == '大三']['Weight'].mean()
print(f"\n大一学生的平均体重: {freshman_weight_mean}")
print(f"大三学生的平均体重: {junior_weight_mean}")
```
### 第3题
**题目描述**:
现有一组数据如表所示:
| f | key | value |
|--|-------|
| 5 | a | 10 |
| 11| a | 20 |
| 17| a | 30 |
| 23| b | 40 |
| 24| b | 50 |
| 25| b | 60 |
**任务**:
1. 创建 DataFrame 类的对象
2. 根据 key 列进行分组,并查看分组信息
3. 所有列应用 sum 函数
4. 所有列应用自定义函数,计算极差值
5. 所有列应用多个函数,并给函数指定名称为和、极差
6. 不同列应用不同函数,'f' 列计算和,'value' 列计算均值,'key' 列计算极差值
**代码实现**:
```python
import pandas as pd
# 1. 创建 DataFrame 对象
data = {
'f': [5, 11, 17, 23, 24, 25],
'key': ['a', 'a', 'a', 'b', 'b', 'b'],
'value': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)
# 2. 根据 key 列进行分组,并查看分组信息
key_group = df.groupby('key')
print("按 key 分组的信息:")
print(key_group.describe())
# 3. 所有列应用 sum 函数
sum_result = key_group.sum()
print("\n所有列应用 sum 函数的结果:")
print(sum_result)
# 4. 所有列应用自定义函数,计算极差值
def range_func(x):
return x.max() - x.min()
range_result = key_group.apply(range_func)
print("\n所有列应用自定义函数计算极差值的结果:")
print(range_result)
# 5. 所有列应用多个函数,并给函数指定名称为和、极差
multi_func_result = key_group.agg(['sum', range_func]).rename(columns={'sum': '和', 'range_func': '极差'})
print("\n所有列应用多个函数并命名的结果:")
print(multi_func_result)
# 6. 不同列应用不同函数,'f' 列计算和,'value' 列计算均值,'key' 列计算极差值
custom_agg_result = key_group.agg({
'f': 'sum',
'value': 'mean',
'key': range_func
})
print("\n不同列应用不同函数的结果:")
print(custom_agg_result)
```
以上代码实现了文档中提到的各项任务。希望这些代码对你有所帮助!如果有任何问题,请随时提问。
阅读全文