网站首页 > 技术文章 正文
周末复习,这个任务旨在让你在周末放松的同时巩固前两周的学习成果,并通过一个自选小任务优化之前的项目。
学习目标
- 复习前两周(Day 18-20)的核心内容,包括 Pandas 和 Matplotlib 的基础。
- 完成之前未完成的练习或挑战。
- 通过一个自选小任务优化之前的项目,提升代码质量或功能。
任务步骤
- 复习前两周内容
- Day 18: Pandas 基础
- 复习 Series 和 DataFrame 的创建与操作。
- 回顾读取 CSV 文件和计算平均值的代码。
- Day 19: 可视化基础
- 复习折线图和柱状图的绘制方法。
- 回忆如何设置标题、标签和网格。
- Day 20: 综合练习
- 复习学生成绩分析项目,包括数据读取、平均分计算和图表绘制。
- 建议:快速运行之前写的代码,确保理解每个部分的逻辑。
- 完成未完成练习
- 检查 Day 18-20 的额外挑战是否完成。如果没有,选择至少一个完成:
- Day 18: 为 DataFrame 添加 Grade 列并排序。
- Day 19: 在折线图中添加平均温度线。
- Day 20: 计算学生总分并找出最高分。
- 如果所有练习都已完成,可以跳到第 3 步。
- 自选小任务:优化之前的项目
- 从 Day 18-20 中选择一个项目进行优化。以下是一些建议:
- 优化 Day 18 的 CSV 分析
- 添加异常值检测:找出成绩低于 60 或高于 95 的数据。
- 输出更详细的统计信息(如中位数、最大值、最小值)。
- 优化 Day 19 的温度可视化
- 添加颜色区分:温度高于 23°C 用暖色调,低于用冷色调。
- 将折线图和柱状图合并到一个画布上(使用子图)。
- 优化 Day 20 的学生成绩分析
- 添加新功能:按科目筛选出优秀学生(例如成绩 > 90)。
- 美化图表:为柱状图添加数据标签,为直方图调整区间并添加平均线。
参考代码(优化 Day 20 示例)
以下是优化 Day 20 学生成绩分析项目的代码示例,增加了优秀学生筛选和图表美化功能:
python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('students.csv')
print("学生成绩数据:")
print(df)
# 计算平均分
averages = df[['math', 'english', 'science']].mean()
print("\n各科目平均分:")
print(averages)
# 新功能:筛选优秀学生(成绩 > 90)
excellent_students = df[df['math'] > 90][['name', 'math']]
print("\n数学成绩优秀的学生(>90):")
print(excellent_students)
# 优化柱状图 - 添加数据标签
plt.figure(figsize=(8, 5))
bars = plt.bar(averages.index, averages.values, color=['skyblue', 'lightgreen', 'salmon'])
plt.title('Average Scores by Subject')
plt.xlabel('Subjects')
plt.ylabel('Average Score')
plt.ylim(0, 100)
for bar in bars: # 添加数据标签
yval = bar.get_height()
plt.text(bar.get_x() + bar.get_width()/2, yval + 1, round(yval, 1), ha='center')
plt.show()
# 优化直方图 - 添加平均线
plt.figure(figsize=(8, 5))
plt.hist(df['math'], bins=5, color='lightblue', edgecolor='black')
plt.axvline(df['math'].mean(), color='red', linestyle='dashed', linewidth=1, label=f'Mean: {df["math"].mean():.1f}')
plt.title('Math Score Distribution')
plt.xlabel('Score')
plt.ylabel('Number of Students')
plt.legend()
plt.show()
代码亮点
- 优秀学生筛选: 使用 Pandas 的布尔索引筛选出数学成绩 > 90 的学生。
- 柱状图优化: 用 plt.text() 在柱子顶部显示具体数值。
- 直方图优化: 用 axvline() 添加平均线并显示图例。
额外建议
- 如果觉得任务量太大,可以选择只完成一个优化点。
- 记录复习中的疑问或灵感,为下周学习做准备。
完成标准
- 复习 Day 18-20 的核心内容并运行至少一个相关代码。
- 完成至少一个未完成的练习或优化一个项目。
- 能够总结前两周学到的关键技能(如数据处理、可视化)
- 上一篇: Python算法:4.寻找两个正序数组的中位数
- 下一篇: Python的random模块常用方法
猜你喜欢
- 2025-05-16 实用主义 Python 一行命令走天涯
- 2025-05-16 Python的random模块常用方法
- 2025-05-16 Python算法:4.寻找两个正序数组的中位数
- 2025-05-16 今天我学习了Python数据统计分析教程,把笔记分享出来
- 2025-05-16 零基础入门 Python 内置函数:从基础到进阶的实用指南
- 2025-05-16 交互式操作 Excel,所见即所得:Python xlwings 库详解
- 2025-05-16 R语言raster包遍历文件夹并计算大量栅格数据平均值
- 2025-05-16 Python入门-Day 18:Pandas 基础
- 2025-05-16 Python数据分析(四)
- 2025-05-16 Python函数实用教程
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)