本文通过运用所学可视化知识,对现有的疫情数据进行简单分析,同时介绍爬虫相关知识
Python爬虫即使用 Python程序开发的网络爬虫(网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
https://python3webspider.cuiqingcai.com/
数据集的获取是我们进行数据分析的第一步。现在获取数据的主要途径一般为:现成数据;自己写爬虫去爬取数据;使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地。
博主用的是现有的数据进行数据分析。
request:
它是最基本的 HTTP 请求模块,可以用来模拟发送请求。就像在浏览器里输入网址然后回车一样,只需要给库方法传入 URL 以及额外的参数,就可以模拟实现这个过程了。
正则表达式:
贪婪匹配是尽可能匹配多的字符,非贪婪匹配就是尽可能匹配少的字符。在做匹配的时候,字符串中间尽量使用非贪婪匹配,也就是用 .? 来代替 ,以免出现匹配结果缺失的情况。但如果匹配的结果在字符串结尾,.*? 就有可能匹配不到任何内容了。
空值处理:
s.dropna(how='all') #删除所有列值为空的行
s.dropna(axis=1) #列有空值,删除
s.dropna(axis=1,how='all') #列全为空值,删除,1为列 0为行
dropna() #删除有空值的所有行列
s.fillna(0,inplace=True)
博主在jupyter notebook上通过pyecharts实现数据分析与可视化。现仅以jupyter和pyecharts为例示范。
jupyter安装(在命令提示符下输入):
pip install jupyter
pyecharts安装(在命令提示符下输入):
pip install pyecharts
可能遇到的问题及解决方案(管理员身份运行命令提示符):
WARNING: You are using pip version 20.3.1; however, version 20.3.3 is available. You should consider
python -m pip install --upgrade pip -i https://pypi.douban.com/simple
表格读取:
data=pd.read_csv(r'C:\Users\XX\Desktop\2019_nCoV_data.csv',encoding='utf-8')
表格列删除:
data.drop(["Date","Province/State"],axis=1) #删除Date,Province/State列
排列:
d1=data.sort_values(by=["Date","Confirmed"],ascending=False)[:10]#排列
d1
选出表格最后日期(2020.04.02),确诊人数最多的十个省制成饼图:
from pyecharts import options as opts
from pyecharts.charts import Bar,Line,Pie
pie=(Pie().add("",[list(i) for i in zip(d1['Province/State'].values.tolist(),d1['Confirmed'].values.tolist())]))
pie.render_notebook()
选出表格最后日期(2020.04.02)以及确诊人数最多的十个省,对比治愈与死亡人数:
line=(Line()
.add_xaxis(list(d1['Province/State'].values))
.add_yaxis("治愈",d1['Recovered'].values.tolist())
.add_yaxis("死亡",d1['Deaths'].values.tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title="治愈与死亡"),
legend_opts=opts.LegendOpts(pos_top="30%",pos_right="70%"),
)
)
line.render_notebook()
分析:据图得治愈人数接近于死亡人数,病毒未完全控制
选出表格前六个地区,对比治愈与死亡人数:
bar=(Bar()
.add_xaxis(list(d1['Province/State'].values)[:6])
.add_yaxis("治愈",d1['Recovered'].values.tolist()[:6])
.add_yaxis("死亡",d1['Deaths'].values.tolist()[:6])
.set_global_opts(
title_opts=opts.TitleOpts(title="各地区治愈与死亡人数"),
datazoom_opts=[opts.DataZoomOpts()],
)
)
bar.render_notebook()
以上就是所有的内容,本文仅仅简单介绍了爬虫及数据分析可视化,欢迎大家批评指正。