失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python爬虫可视化题目北京空气质量监测数据获取与分析

python爬虫可视化题目北京空气质量监测数据获取与分析

时间:2019-12-26 19:47:49

相关推荐

python爬虫可视化题目北京空气质量监测数据获取与分析

任务1:数据采集

网页“http://pm25.in/beijing”中包含北京12个监测点的空气质量监测数据,请编写程序抓取网页(网页样本保存在源素材文件夹下src1目录中)上的监测点、AQI、空气质量指数类别,如表H2-1-1所示。将抓取的数据保存,以bj.csv文件命名。

表H2-1-1 北京空气质量监测数据

监测点 AQI 空气质量指数类别

万寿西宫 57 良

…… …… ……

1)使用Pycharm在考生文件夹下创建项目task030101,在项目下创建python文件,命名为task1.py。将源素材文件夹下的src1目录复制到项目task030101下。

2)根据实际项目需求进行问题分析,书写注释。

3)编写程序,正确爬取网页中的数据,运行程序并显示“已爬取”。

4)编写程序,将抓取的数据保存在项目task030101下,以bj.csv文件命名,分隔符为tab键,运行程序并显示“已保存”。

5)将运行结果截图,保存在考生文件夹下,以task1.jpg文件命名。

**

答案:

import bs4from bs4 import BeautifulSoupfrom urllib import requestimport pandas## 解析网页内容# ulist:保存解析后的网页内容, html:传入的网页内容def jiexi(ulist,html):soup = BeautifulSoup(html, 'html.parser') ##创建BeautifulSoup对象,并指定BeautifulSoup中TreeBuilder的解析器为html.parserfor tr in soup.find('tbody').children: ## 循环标签tbody下的所有tr标签,一个迭代对象if isinstance(tr,bs4.element.Tag): ## 判断是否bs4.element.Tag类型tds = tr('td') ## 得到这一行中的数据ulist.append([tds[0].string,tds[1].string,tds[2].string]) ## 添加到三个## 分析数据,等到二维表格def tofile(ulist):data = pandas.DataFrame(ulist) ##数据框架,制作二维表data.columns =['监测点','AQI','空气质量指数类别'] ## 设置列名data.to_csv('./bj.csv',header=True,sep='\t',index=False) ## 写入csv## 主函数def main():uinfo=[]url='http://pm25.in/beijing' ##得到网页地址html = request.urlopen(url).read().decode('utf-8') ##打开网页,并读取网页,设置编码格式jiexi(uinfo,html) ## 调用jiexi函数print("已爬取")tofile(uinfo) ##调用tofile函数print('已保存')#主接口if __name__ == '__main__':main()

任务2:数据处理和分析

**

使用Python的pandas读取bj.csv文件(bj.csv文件保存在源素材文件夹下task030102\src2目录中),完成数据处理和分析。

1)将源素材文件夹下task030102项目复制到考生文件夹下,使用Pycharm打开项目task030102,打开task2.py。

2)根据实际项目需求进行问题分析,书写注释。

3)编写程序,完成readFile(filename)函数的定义,使用pandas读取bj.csv文件中的数据,返回值类型为DataFrame。

4)编写程序,完成printInfo(filename)函数定义,显示bj.csv文件中的内容,如图H2-1-1所示。

图H2-1-1显示bj.csv文件中的内容

5)编写程序,完成insertDate(filename)函数的定义,将-07-21日期数据作为新的一列添加到Excel文件中,列名称为“监测日期”,保存在项目task030102下,文件命名为bj.xlsx。

6)编写程序,完成aqi(filename)函数的定义,显示空气质量指数类别为优的记录。

7)编写程序,导入模块,调用自定义的readFile、printInfo、insertDate、aqi函数,实现上述功能,注意参数的正确设置。

8)将运行结果截图,保存在考生文件夹下,以task2.jpg文件命名。

答案:

import pandas ## pandas 提供了大连能使我们快速便捷的处理数据的函数和方法# 读取数据def readFile(filename):file = pandas.read_csv(filename, sep='\t', encoding='utf-8') ##读取csv文件return file# 显示内容def printInfo(filename):file = readFile(filename) ## 读取数据print(file)# 插入数据def insertDate(filename):file = readFile(filename)file['监测日期'] = pandas.to_datetime('-09-10') ##插入列file.to_excel('./bj.xlsx') ## 写入excel格式文件中# 筛选数据def aqi(filename):file = readFile(filename)print(file.loc[file['空气质量指数类别'] == '优']) ## 筛选空气质量指数类别为优的数据if __name__ == '__main__':filename = './bj.csv'readFile(filename)printInfo(filename)print('----------------------------------------')insertDate(filename)print('插入时间成功')print('-----------------------------------')aqi(filename)

任务3:数据可视化

使用Python读取bj.csv文件(bj.csv文件保存在源素材文件夹下src3目录中)中的数据,使用matplotlib绘制直方图,显示aqi最少的4个监测点。

1)使用Pycharm在考生文件夹下创建项目task030103,在项目下创建python文件,命名为task3.py。将源素材文件夹下的src3目录复制到项目task030103下。

2)根据实际项目需求进行问题分析,书写注释。

3)编写程序,使用pandas读取bj.csv文件中的数据。使用matplotlib绘制直方图,显示AQI最少的4个监测点,如图H2-1-2所示。生成的文件保存在项目task030103下,文件命名为aqi.png。

答案:

import pandas as pdimport matplotlib.pyplot as plt# 设置格式显示中文,显示正负号plt.rcParams['font.sans-serif'] = 'SimHei'plt.rcParams['axes.unicode_minus'] = 'False'# 读取文件data = pd.read_csv('./src3/bj.csv', sep='\t', encoding='utf-8')# 设置画布大小,清晰度plt.figure(figsize=(8, 7), dpi=100)# 设置标题plt.title('北京AQI最少的4个监测点')# 给读取的文件按值排序 by:排序类别 ascending:是否升序 选取前4个file = data.sort_values(by='AQI', ascending=True)[:4]print(file)# 绘制直方图,设置横纵坐标,宽度plt.bar(file['监测点'], file['AQI'], width=0.8)plt.xlabel('监测点') # 添加x轴名称plt.ylabel('AQI') # 添加y轴名称plt.savefig('./api.png') # 图形保存到本地plt.show()

如果觉得《python爬虫可视化题目北京空气质量监测数据获取与分析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。