pandas库中的read_csv、read_excel函数来读取数据,然后转换成字典数据结构实现代码
时间: 2023-08-28 19:05:19 浏览: 123
好的,下面是代码实现:
```python
import pandas as pd
import numpy as np
# 从csv文件中读取数据
df = pd.read_csv("student_scores.csv")
# 从excel文件中读取数据
# df = pd.read_excel("student_scores.xlsx")
# 将DataFrame转换成字典数据结构
student_scores = {}
for i, row in df.iterrows():
student_scores[row["name"]] = [row["Python"], row["math"], row["English"]]
# 随机生成成绩范围在40~100之间的三门成绩
scores = np.random.randint(40, 101, size=(len(student_scores), 3))
# 计算每门课程的最高分、最低分、平均分、标准差
max_scores = np.max(scores, axis=0)
min_scores = np.min(scores, axis=0)
avg_scores = np.mean(scores, axis=0)
std_scores = np.std(scores, axis=0)
# 计算每个学生的总成绩
total_scores = np.sum(scores, axis=1)
# 找到总成绩最高分、最低分的学生名字
max_score_idx = np.argmax(total_scores)
min_score_idx = np.argmin(total_scores)
# 输出结果
print("Python成绩最高分:", max_scores[0])
print("Python成绩最低分:", min_scores[0])
print("Python成绩平均分:", avg_scores[0])
print("Python成绩标准差:", std_scores[0])
print("Math成绩最高分:", max_scores[1])
print("Math成绩最低分:", min_scores[1])
print("Math成绩平均分:", avg_scores[1])
print("Math成绩标准差:", std_scores[1])
print("English成绩最高分:", max_scores[2])
print("English成绩最低分:", min_scores[2])
print("English成绩平均分:", avg_scores[2])
print("English成绩标准差:", std_scores[2])
print("总成绩最高分的学生:", list(student_scores.keys())[max_score_idx])
print("总成绩最低分的学生:", list(student_scores.keys())[min_score_idx])
```
这里我们使用了pandas库中的read_csv函数来读取csv文件中的数据,并将其转换成字典数据结构,然后使用与上面相同的方法来生成随机成绩并计算每门课程的统计数据,最后找到总成绩最高分、最低分的学生名字。如果要从excel文件中读取数据,可以使用read_excel函数,其使用方法与read_csv类似。
阅读全文