Python 30 天实战:数据分析初体验
在经历了前面九天的 Python 知识学习之旅后,我们已经掌握了包括数据结构、文件操作、异常处理等多方面的技能。今天,我们将迎来第一个综合练习挑战 —— 利用所学知识对一个简单的数据集进行数据分析,开启我们在数据处理与分析领域的探索之旅,进一步提升我们 Python 技能的综合运用能力。
一、项目准备
首先,我们假设拥有一个 CSV 格式的学生成绩数据集文件,例如 student_scores.csv,其内容大致如下:
姓名,语文成绩,数学成绩,英语成绩
张三,85,90,88
李四,76,82,79
王五,92,88,95
赵六,65,70,68
...
二、数据读取与存储
- 使用 csv 模块读取数据:
Python 的 csv 模块为我们提供了便捷的 CSV 文件读取功能。首先导入该模块:
import csv
然后,使用以下代码读取文件数据并存储到合适的数据结构中,这里我们选择使用列表嵌套字典的形式,每个字典代表一个学生的成绩信息:
student_scores = []
with open('student_scores.csv', 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
student_scores.append(row)
三、数据分析与处理
- 计算平均成绩:
定义一个函数来计算每个学生的平均成绩,并将结果添加到学生成绩字典中:
def calculate_average_score(student):
scores = [int(student['语文成绩']), int(student['数学成绩']), int(student['英语成绩'])]
average_score = sum(scores) / len(scores)
student['平均成绩'] = average_score
return student
student_scores_with_average = [calculate_average_score(student) for student in student_scores]
- 统计各分数段人数:
我们设定分数段为:90 - 100 为优秀,80 - 89 为良好,70 - 79 为中等,60 - 69 为及格,60 以下为不及格。
score_ranges = {'优秀': 0, '良好': 0, '中等': 0, '及格': 0, '不及格': 0}
for student in student_scores_with_average:
average_score = student['平均成绩']
if average_score >= 90:
score_ranges['优秀'] += 1
elif 80 <= average_score < 90:
score_ranges['良好'] += 1
elif 70 <= average_score < 80:
score_ranges['中等'] += 1
elif 60 <= average_score < 70:
score_ranges['及格'] += 1
else:
score_ranges['不及格'] += 1
四、结果呈现
- 打印输出结果:
先打印出每个学生的详细成绩信息以及平均成绩:
print("学生成绩详情:")
for student in student_scores_with_average:
print(f"{student['姓名']}: 语文成绩 {student['语文成绩']}, 数学成绩 {student['数学成绩']}, 英语成绩 {student['英语成绩']}, 平均成绩 {student['平均成绩']}")
再打印出各分数段人数统计结果:
print("\n各分数段人数统计:")
for score_range, count in score_ranges.items():
print(f"{score_range}: {count} 人")
- 写入新的文件(可选):
如果需要将结果保存到文件中,可以创建一个新的文本文件或 CSV 文件,将上述结果写入。例如,创建一个 analysis_results.txt 文件并写入结果:
with open('analysis_results.txt', 'w', encoding='utf-8') as file:
file.write("学生成绩详情:\n")
for student in student_scores_with_average:
file.write(f"{student['姓名']}: 语文成绩 {student['语文成绩']}, 数学成绩 {student['数学成绩']}, 英语成绩 {student['英语成绩']}, 平均成绩 {student['平均成绩']}\n")
file.write("\n各分数段人数统计:\n")
for score_range, count in score_ranges.items():
file.write(f"{score_range}: {count} 人\n")
通过这个简单的数据分析小项目,我们成功地将之前所学的文件读取、数据结构处理以及函数定义等知识融会贯通,迈出了数据处理与分析领域坚实的第一步。在后续的学习中,我们将进一步深入探索数据分析的高级技巧和相关库的使用,不断提升我们在这一领域的能力。
#数据分析入门# #Python 综合应用# #数据处理实战# #编程技能提升# #学生成绩分析#
#Python 数据之旅#