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

liftword4个月前 (02-27)技术文章42

在经历了前面九天的 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人关注,...

DeepSeek 赋能:Python 与 C++ 实战核心要点全分享

感谢认可!在Python和C++的实战中,我主要围绕性能优化和跨语言协作展开,以下是几个典型场景的分享:1. Python与C++混合编程:高频交易信号引擎? 场景:为量化团队设计低延迟信号生成系统,...

整理了70个Python实战项目案例,教程+源码+笔记。从基础到深入

项目内容:整理了70个Python实战项目案例,教程+源码+笔记。从基础到深入更有Python零基础全套入门教程助力学习: 领取方式:...

Python 模块入门全解析:从基础到实战,新手必看!

对于 Python 编程的初学者而言,Python 模块是快速提升编程能力、实现高效代码编写的关键所在。今天,就让我们一起深入探索 Python 模块的世界。一、模块基础概念Python 模块,简单来...

十个Python练手的实战项目,学会这些轻松拿捏Python(推荐)

这篇文章主要介绍了Python实战项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧如果需要获取到【Python全套实战项目】的...