Python 30 天实战:数据分析初体验

在经历了前面九天的 Python 知识学习之旅后,我们已经掌握了包括数据结构、文件操作、异常处理等多方面的技能。今天,我们将迎来第一个综合练习挑战 —— 利用所学知识对一个简单的数据集进行数据分析,开启我们在数据处理与分析领域的探索之旅,进一步提升我们 Python 技能的综合运用能力。

一、项目准备

首先,我们假设拥有一个 CSV 格式的学生成绩数据集文件,例如 student_scores.csv,其内容大致如下:

姓名,语文成绩,数学成绩,英语成绩
张三,85,90,88
李四,76,82,79
王五,92,88,95
赵六,65,70,68
...

二、数据读取与存储

  1. 使用 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)

三、数据分析与处理


  1. 计算平均成绩
    定义一个函数来计算每个学生的平均成绩,并将结果添加到学生成绩字典中:
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]


  1. 统计各分数段人数
    我们设定分数段为: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

四、结果呈现


  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} 人")


  1. 写入新的文件(可选)
    如果需要将结果保存到文件中,可以创建一个新的文本文件或 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 数据之旅#

相关文章

Python新手的福音,涵盖20+种初学者必练项目!这本实战书太火了

对学Python的新手同学来说,最最最想要的干货是什么?是大量可以练手的项目啊。俗话说,三天不练手生,三天不念口生。#技术派的书架#在知乎上有一个关于"Python的练手项目”的问题,有6W人关注,...

247个Python实战案例:从入门到进阶(含源码)

Python是目前最热门的编程语言之一。由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。这247个实战案例让你告别枯燥,60秒学会一个小例...

从零开始学习 Python!6《项目实战》教你玩转 Python 项目

大家好啊!今天我们要聊一个超级有趣的话题——Python学习的实战项目!作为一个编程小白,你可能会觉得学完基础语法之后,完全不知道该怎么实战。别担心,老铁!这这篇文章就是为你量身定制的!为什么要做 P...

Python 30 天实战:数据分析实战全流程

在前面的学习中,我们已经分别掌握了 NumPy、Pandas 和 Matplotlib 这三个强大库的基础及部分进阶知识,今天我们将迎来一个综合性的实战练习,通过对真实世界数据集的处理、分析与可视化,...

Python+微信小程序开发实战(超清完结)

获课:97java.xyz/5101/标题:Python+微信小程序开发实战:从入门到精通引言随着移动互联网的快速发展,微信小程序因其便捷性和广泛的用户基础,成为开发者们关注的焦点。Python作为一...

实战:用python写个小游戏!(详细解释,建议收藏)

前言:今天为大家带来的内容是实战:用python写个小游戏!(详细解释,建议收藏)本文具有不错的参考意义及学习意义,希望大家会喜欢!要是觉得不错记得点赞,转发关注,不迷路哦!引言自从python语言大...