计算并输出数据集的以下统计信息:(5分)平均考试成绩最高考试成绩最低考试成绩不同课程的平均成绩使用NumPy和Pandas计算每个课程的考试成绩分布,包括平均分、中位数、标准差等,并将结果存储在一个新的DataFrame中。将该DataFrame按平均分降序排列。(10分)
时间: 2024-11-22 21:34:25 浏览: 16
Admission_Predict.csv-数据集
首先,我们需要导入必要的库,如`pandas`用于数据处理,`numpy`用于数值计算。假设我们有一个包含学生考试成绩的数据集,名为df,其中每一行代表一个学生的成绩,列包括`course_id`(课程ID)和`scores`(考试成绩列表)。
```python
import pandas as pd
import numpy as np
# 假设df结构如下:
# course_id scores
# 0 1 [85, 90, 87]
# 1 1 [92, 88, 90]
# 2 2 [78, 80, 82]
# 3 2 [85, 86, 84]
# 1. 计算平均考试成绩
mean_scores = df['scores'].apply(np.mean)
# 2. 找出最高和最低考试成绩
max_score = df['scores'].apply(max)
min_score = df['scores'].apply(min)
# 3. 按课程计算平均成绩
avg_course_scores = df.groupby('course_id')['scores'].apply(np.mean)
# 将以上结果整合到一个新的DataFrame中
stats_df = pd.DataFrame({'Course ID': avg_course_scores.index,
'Average Score': avg_course_scores.values,
'Max Score': max_score,
'Min Score': min_score})
# 4. 计算每个课程的成绩分布统计(例如平均分、中位数、标准差)
for col in ['scores']:
stats_df[f'{col}_Mean'] = df.groupby('course_id')[col].apply(np.mean)
stats_df[f'{col}_Median'] = df.groupby('course_id')[col].apply(np.median)
stats_df[f'{col}_StdDev'] = df.groupby('course_id')[col].apply(np.std)
# 5. 按平均分降序排列
stats_df.sort_values(by='Average Score', ascending=False, inplace=True)
```
完成上述步骤后,`stats_df`就是所需的新DataFrame,包含了所有指定的统计信息,并按照平均分从高到低排序。
阅读全文