当前位置: 首页 > news >正文

爬虫与数据分析结和

  1. 任务描述
    • 爬取目标:高三网中国大学排名一览表,网址为 2021中国的大学排名一览表_高三网。
    • 爬取内容:学校名称、总分、全国排名、星级排名、办学层级。
    • 数据存储:爬取后的数据保存在 CSV 文件中。
  2. 代码实现(爬取)
    • 导入库:requests、BeautifulSoup、csv。
    • 关键函数:
      • get_html(url, time=3):发送 get 请求获取网页文本内容,设置编码和异常处理。
      • parser(html):将 html 转换为 soup 对象,遍历表格行提取数据并整理成列表。
      • save_csv(item, path):将列表数据写入 CSV 文件。
    • 主程序:获取网页数据、解析数据、存储数据到 school.csv。
  3. 运行结果(爬取)
    • 生成 school.csv 文件,包含多所大学的排名信息,例如北京大学(总分 100、全国排名 1 等)、清华大学(总分 99.81、全国排名 2 等)。
  4. 数据预处理
    • 问题:school.csv 中 “总分” 列存在空数据。
    • 处理方法:
      处理方式具体操作
      删除包含空字段的行使用pd.read_csv读取文件,通过df.dropna()删除空行
      用指定内容替换空字段使用df.fillna("暂无分数信息",inplace = True)替换
      计算列的均值替换空单元格计算 “总分” 列均值,用df["总分"].fillna(x, inplace=True)替换
      计算列的中位数替换空单元格计算 “总分” 列中位数,用df["总分"].fillna(x, inplace=True)替换
  5. 数据分析
    • 数据规模:该网站共有 820 所学校。
    • 星级分布:8 星学校有 8 所,7 星学校有 16 所,6 星学校有 36 所,5 星学校有 59 所,4 星学校有 103 所,3 星学校有 190 所,2 星学校有 148 所,1 星学校有 260 所。
    • 占比情况:8 星约占 1%,7 星约占 2%,6 星约占 4.5%,5 星约占 7.2%,4 星约占 12.5%,3 星约占 23.1%,2 星约占 18%,1 星约占 31.7%。
  6. 数据可视化
    • 柱形图:使用 matplotlib 绘制,展示不同星级学校的个数,有垂直和水平两种形式。
    • 饼图:使用 matplotlib 绘制,展示不同星级学校个数的占比情况。

关键问题

  1. 问题:在爬取中国大学排名数据时,使用了哪些库及各自的作用?
    答案:使用了 requests 库,用于发送 HTTP 请求获取网页内容;BeautifulSoup 库,用于解析网页 HTML 结构,提取所需数据;csv 库,用于将提取的数据写入 CSV 文件进行存储。
  2. 问题:对 school.csv 中 “总分” 列的空数据,有哪些处理方法?
    答案:有四种处理方法,分别是删除包含空字段的行,使用df.dropna()实现;用指定内容(如 “暂无分数信息”)替换空字段,通过df.fillna()实现;计算列的均值替换空单元格,先算均值再用fillna替换;计算列的中位数替换空单元格,先算中位数再用fillna替换。
  3. 问题:在对中国大学星级分布进行可视化时,使用了哪些图表及各自的作用?
    答案:使用了柱形图和饼图。柱形图直观展示了不同星级学校的具体数量,能清晰对比各星级学校数量的多少;饼图则展示了不同星级学校个数在总学校数中的占比情况,便于了解各星级学校的分布比例。
http://www.lryc.cn/news/618077.html

相关文章:

  • 爬虫与数据分析入门:从中国大学排名爬取到数据可视化全流程
  • MySQL详细安装
  • 《算法导论》第 18 章 - B 树
  • 【MYSQL】MySQL中On duplicate key update
  • Dify入门指南(2):5 分钟部署 Dify:云服务 vs 本地 Docker
  • Python自动化测试实战:reCAPTCHA V3绕过技术深度解析
  • 常见鱼饵制作方式
  • Flutter学习笔记(六)---状态管理、事件、路由、动画
  • Vuex和Pina的区别
  • Prompt Engineering 最佳实践:让AI输出更精准的核心技巧
  • MaixPy简介
  • 贪心----2.跳跃游戏
  • 【09】中兴通讯——中兴 软件工程师 第一轮一面,技术面,校招,面试问答记录
  • QML的中英文翻译
  • OpenCV计算机视觉实战(19)——特征描述符详解
  • 【前端基础】16、结构伪类(注:粗略说明)
  • Facebook广告投放进阶:ABO精测与CBO放量的协同增长策略
  • 计算机网络---DNS(域名系统)
  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的多目标跟踪与行为分析优化(393)
  • [Ubuntu] xrdp共享连接 Ubuntu 屏幕 | xfce4
  • 爬虫与数据分析结合案例
  • C++11的历史和统一的初始化列表
  • 数据填报是什么?数据填报工具有哪些?
  • 蓝桥杯算法之搜索章 - 4
  • 【单板硬件开发】关于复位电路的理解
  • 掌握do-while循环:从语法到运用
  • 18.5 BERT评估指标终极指南:HuggingFace实战提升文本分类效果
  • 【LeetCode刷题集】--排序(三)
  • 基于FPGA的热电偶测温数据采集系统,替代NI的产品(二)总体设计方案
  • 用 Flink SQL 和 Paimon 打造实时数仓:深度解析与实践指南