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

爬虫与数据分析结合案例

案例背景  

在数据科学与计算领域,爬虫技术与数据分析的结合是常见且强大的应用方式。本案例以“中国大学排名”为例,演示如何从高三网爬取大学排名数据,并通过数据预处理、分析和可视化,最终生成直观的统计图表(柱形图和饼图)。  

任务流程  

数据爬取  


目标:爬取高三网(`http://www.bspider.top/gaosan/`)中的中国大学排名数据,包括以下字段:  
学校名称  
总分  
全国排名  
星级排名  
办学层级  
工具:Python 的 `requests` 和 `BeautifulSoup` 库。  
结果:数据保存为 `school.csv` 文件。  

数据预处理 


爬取后的数据可能存在缺失值(如“总分”列),需通过 `pandas` 进行清洗:  

方法 1:删除空值行  

df.dropna(subset=['总分'], inplace=True)

方法 2:指定值填充空值  

df['总分'].fillna("未知", inplace=True)

方法 3:均值/中位数填充  

mean_score = df['总分'].mean()
df['总分'].fillna(mean_score, inplace=True)

median_score = df['总分'].median()
df['总分'].fillna(median_score, inplace=True)

数据分析 


数据包含 **820 所大学**,按星级排名分布如下:  
星级                 学校数量                            占比  
8 星                  8 所                                      1%     
7 星                16 所                                       2%     
6 星                 36 所                                   4.5%   
5 星                 59 所                                   7.2%  
4 星               103 所                                  12.5%  
3 星               190 所                                    23.1%  
2 星               148 所                                      18%   
1 星               260 所                                     31.7% 

数据可视化  

柱形图:星级排名分布 
使用 `Seaborn` 绘制柱形图,直观展示各星级学校的数量差异:  
import seaborn as sns
sns.barplot(x='星级', y='数量', data=df_star)
plt.title("中国大学星级排名分布")
plt.show()

饼图:星级占比
通过饼图展示比例分布:  
plt.pie(df_star['占比'], labels=df_star['星级'], autopct='%1.1f%%')
plt.title("中国大学星级占比")
plt.show()

总结  


1. 爬虫技术:通过 `requests` 获取网页数据,`BeautifulSoup` 解析 HTML 结构。  
2. 数据清洗:`pandas` 提供灵活的缺失值处理方式(删除、填充)。  
3. 可视化工具:`Seaborn` 和 `Matplotlib` 快速生成统计图表。  


http://www.dtcms.com/a/326098.html

相关文章:

  • STM32 HAL驱动MPU6050传感器
  • p6spy和p6spy-spring-boot-starter的SpringBoot3集成配置
  • 高性能Web服务器
  • java基础概念(二)----变量(附练习题)
  • Go 语言三大核心数据结构深度解析:数组、切片(Slice)与映射(Map)
  • Unity插件DOTween使用
  • 【GPT入门】第45课 无梯子,linux/win下载huggingface模型方法
  • 如何避免团队文件同步过程中版本信息的丢失?
  • GAI 与 Tesla 机器人的具体联动机制
  • 变频器与伺服系统的工作原理,干扰来源及治理方式
  • 软件测试关于搜索方面的测试用例
  • [AI 生成] kafka 面试题
  • 是否有必要使用 Oracle 向量数据库?
  • 【图像处理基石】UE输出渲染视频,有哪些画质相关的维度和标准可以参考?
  • OmniHuman:字节推出的AI项目,支持单张照片生成逼真全身动态视频
  • 不同FPGA开发板系统移植步骤
  • 《C++中 type_traits 的深入解析与应用》
  • 【Docker实战进阶】Docker 实战命令大全
  • “底层闭源 + Lua 脚本” 开发模式
  • 缺省路由的内容
  • 基于51单片机指纹识别管理门禁密码锁系统设计
  • “鱼书”深度学习进阶笔记(3)第四章
  • Spring Boot文件下载功能实现详解
  • Spring Boot 2.6.0+ 循环依赖问题及解决方案
  • C#高级语法_泛型
  • ClickHouse列式数据库的使用场景与基本优化手段
  • Jmeter使用第二节-接口测试(Mac版)
  • ​费马小定理​
  • jmeter 设置随机数
  • 爬虫与数据分析结合:中国大学排名案例学习报告