【Python】2020年美国新冠肺炎疫情数据分析

2020年美国新冠肺炎疫情数据分析

    • 一、 需求描述
    • 二、 环境介绍
    • 三、 数据来源描述
    • 四、 数据上传及上传结果查看
    • 五、数据处理过程描述
      • 1、数据集下载
      • 2、格式转换
      • 3、启动Hadoop集群
      • 4、将文件上传至HDFS文件系统中
      • 5、使用Spark对数据进行分析
      • 6、读取文件生成DataFrame
      • 8、数据可视化
    • 六、经验总结
    • 参考文献

一、 需求描述

本次实验需要对2020年美国新冠肺炎疫情数据作为数据集,以Python为编程语言,使用Spark对数据进行分析,并对分析结果进行可视化。首先需要对数据的采取,在原始数据集.CSV文件组织的,为了方便spark读取生成RDD或者DataFrame,我们需要对us-counties.csv转换为.txt格式文件us-counties.txt,将文件上传至HDFS文件系统中。其次我们需要对采取的数据进行分析,用python完成本实验要统计的8个指标代码在analyst.py文件中,Spark计算结果保存.json文件,方便后续可视化处理。由于使用Python读取HDFS文件系统不太方便,故将HDFS上结果文件转储到本地文件系统中,在可视化中我们需要安装第三方库pyecharts作为可视化工具,具体可视化实现代码在showdata.py文件中展示,编译之后能产生九副可视化图,展示不一样的图形类型对应的意思也不一样。

二、 环境介绍

实验环境中我们是使用的Linux(Ubuntu 16.04)系统,运用了Hadoop3.1.3环境、Spark2.4.0大数据分析引擎、Python3.8编程语言、Jupyter Notebook工具。

三、 数据来源描述

本次2020年美国新冠肺炎疫情数据分析的实验采用的数据集来自于数据网站Kaggle的美国新冠肺炎疫情数据集,上述收集到的数据集以数据表us-counties.csv组织,其中包含了美国发现首例新冠肺炎确诊病例至今(2020-05-19)的相关疫情病例的数据。

四、 数据上传及上传结果查看

根据数据网站Kaggle的美国新冠肺炎疫情数据集,在Windows系统下载之后,该数据集以数据表us-counties.csv组织,我们需要将us-counties.csv文件导入Ubuntu,操作如下:
1、在Oracle VM Virtual Box上点击设备中的把共享粘贴板、拖放中的双向都打开为双向,方便接下来的任务操作。
在这里插入图片描述
输入系统密码
安装完毕之后按回车健,重启Ubuntu系统即可使用双向功能
2、在设备中点击安装增强功能,运行认证即可
3、我把us-counties.csv文件(从百度网盘下载,提取码:t7tu)拖拽到Ubuntu系统下的/home/hadoop
拖拽文件

五、数据处理过程描述

1、数据集下载

使用的数据集来自数据网站Kaggle的美国新冠肺炎疫情数据集(从百度网盘下载,提取码:t7tu),该数据集以数据表us-counties.csv组织,其中包含了美国发现首例新冠肺炎确诊病例至今(2020-05-19)的相关数据。数据包含以下字段:
数据集

2、格式转换

原始数据集是以.csv文件组织的,为了方便spark读取生成RDD或者DataFrame,首先将us-counties.csv转换为.txt格式文件us-counties.txt。转换操作使用python实现,代码组织在toTxt.py中,具体代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、启动Hadoop集群

在这里插入图片描述
查看进程:jsp
在这里插入图片描述

4、将文件上传至HDFS文件系统中

然后使用如下命令把本地文件系统的“/home/hadoop/us-counties.txt”上传到HDFS文件系统中,具体路径是“/user/hadoop/us-counties.txt”。具体命令如下:
在这里插入图片描述

5、使用Spark对数据进行分析

这里采用Python作为编程语言。

from pyspark import SparkConf,SparkContext
from pyspark.sql import Row
from pyspark.sql.types import *
from pyspark.sql import SparkSession
from datetime import datetime
import pyspark.sql.functions as func
def toDate(inputStr):newStr = ""if len(inputStr) == 8:s1 = inputStr[0:4]s2 = inputStr[5:6]s3 = inputStr[7]newStr = s1+"-"+"0"+s2+"-"+"0"+s3else:s1 = inputStr[0:4]s2 = inputStr[5:6]s3 = inputStr[7:]newStr = s1+"-"+"0"+s2+"-"+s3date = datetime.strptime(newStr, "%Y-%m-%d")return date
#主程序:
spark = SparkSession.builder.config(conf = SparkConf()).getOrCreate()
fields = [StructField("date", DateType(),False),StructField("county", StringType(),False),StructField("state", StringType(),False),StructField("cases", IntegerType(),False),StructField("deaths", IntegerType(),False),]
schema = StructType(fields)
rdd0 = spark.sparkContext.textFile("/user/hadoop/us-counties.txt")
rdd1 = rdd0.map(lambda x:x.split("\t")).map(lambda p: Row(toDate(p[0]),p[1],p[2],int(p[3]),int(p[4])))
shemaUsInfo = spark.createDataFrame(rdd1,schema)
shemaUsInfo.createOrReplaceTempView("usInfo")
#1.计算每日的累计确诊病例数和死亡数
df = shemaUsInfo.groupBy("date").agg(func.sum("cases"),func.sum("deaths")).sort(shemaUsInfo["date"].asc())
#列重命名
df1 = df.withColumnRenamed("sum(cases)","cases").withColumnRenamed("sum(deaths)","deaths")
df1.repartition(1).write.json("result1.json")                               #写入hdfs
#注册为临时表供下一步使用
df1.createOrReplaceTempView("ustotal")
#2.计算每日较昨日的新增确诊病例数和死亡病例数
df2 = spark.sql("select t1.date,t1.cases-t2.cases as caseIncrease,t1.deaths-t2.deaths as deathIncrease from ustotal t1,ustotal t2 where t1.date = date_add(t2.date,1)")
df2.sort(df2["date"].asc()).repartition(1).write.json("result2.json")           #写入hdfs
#3.统计截止5.19日 美国各州的累计确诊人数和死亡人数
df3 = spark.sql("select date,state,sum(cases) as totalCases,sum(deaths) as totalDeaths,round(sum(deaths)/sum(cases),4) as deathRate from usInfo  where date = to_date('2020-05-19','yyyy-MM-dd') group by date,state")
df3.sort(df3["totalCases"].desc()).repartition(1).write.json("result3.json") #写入hdfs
df3.createOrReplaceTempView("eachStateInfo")
#4.找出美国确诊最多的10个州
df4 = spark.sql("select date,state,totalCases from eachStateInfo  order by totalCases desc limit 10")
df4.repartition(1).write.json("result4.json")
#5.找出美国死亡最多的10个州
df5 = spark.sql("select date,state,totalDeaths from eachStateInfo  order by totalDeaths desc limit 10")
df5.repartition(1).write.json("result5.json")
#6.找出美国确诊最少的10个州
df6 = spark.sql("select date,state,totalCases from eachStateInfo  order by totalCases asc limit 10")
df6.repartition(1).write.json("result6.json")
#7.找出美国死亡最少的10个州
df7 = spark.sql("select date,state,totalDeaths from eachStateInfo  order by totalDeaths asc limit 10")
df7.repartition(1).write.json("result7.json")
#8.统计截止5.19全美和各州的病死率
df8 = spark.sql("select 1 as sign,date,'USA' as state,round(sum(totalDeaths)/sum(totalCases),4) as deathRate from eachStateInfo group by date union select 2 as sign,date,state,deathRate from eachStateInfo").cache()
df8.sort(df8["sign"].asc(),df8["deathRate"].desc()).repartition(1).write.json("result8.json")

执行analyst.py文件
在这里插入图片描述

6、读取文件生成DataFrame

上面已经给出了完整代码。下面我们再对代码做一些简要介绍。首先看看读取文件生成DataFrame。由于本实验中使用的数据为结构化数据,因此可以使用spark读取源文件生成DataFrame以方便进行后续分析实现。

from pyspark import SparkConf,SparkContext
from pyspark.sql import Row
from pyspark.sql.types import *
from pyspark.sql import SparkSession
from datetime import datetime
import pyspark.sql.functions as func
def toDate(inputStr):newStr = ""if len(inputStr) == 8:s1 = inputStr[0:4]s2 = inputStr[5:6]s3 = inputStr[7]newStr = s1+"-"+"0"+s2+"-"+"0"+s3else:s1 = inputStr[0:4]s2 = inputStr[5:6]s3 = inputStr[7:]newStr = s1+"-"+"0"+s2+"-"+s3date = datetime.strptime(newStr, "%Y-%m-%d")return date 
#主程序:
spark = SparkSession.builder.config(conf = SparkConf()).getOrCreate()
fields = [StructField("date", DateType(),False),StructField("county", StringType(),False),StructField("state", StringType(),False),StructField("cases", IntegerType(),False),StructField("deaths", IntegerType(),False),]
schema = StructType(fields) 
rdd0 = spark.sparkContext.textFile("/user/hadoop/us-counties.txt")
rdd1 = rdd0.map(lambda x:x.split("\t")).map(lambda p: Row(toDate(p[0]),p[1],p[2],int(p[3]),int(p[4])))
shemaUsInfo = spark.createDataFrame(rdd1,schema)
shemaUsInfo.createOrReplaceTempView("usInfo")

7、进行数据分析
本实验主要统计以下8个指标,分别是:
1)统计美国截止每日的累计确诊人数和累计死亡人数。做法是以date作为分组字段,对cases和deaths字段进行汇总统计。
2)统计美国每日的新增确诊人数和新增死亡人数。因为新增数=今日数-昨日数,所以考虑使用自连接,连接条件是t1.date = t2.date + 1,然后使用t1.totalCases – t2.totalCases计算该日新增。
3)统计截止5.19日,美国各州的累计确诊人数和死亡人数。首先筛选出5.19日的数据,然后以state作为分组字段,对cases和deaths字段进行汇总统计。
4) 统计截止5.19日,美国确诊人数最多的十个州。对3)的结果DataFrame注册临时表,然后按确诊人数降序排列,并取前10个州。
5)统计截止5.19日,美国死亡人数最多的十个州。对3)的结果DataFrame注册临时表,然后按死亡人数降序排列,并取前10个州。
6)统计截止5.19日,美国确诊人数最少的十个州。对3)的结果DataFrame注册临时表,然后按确诊人数升序排列,并取前10个州。
7)统计截止5.19日,美国死亡人数最少的十个州。对3)的结果DataFrame注册临时表,然后按死亡人数升序排列,并取前10个州
8)统计截止5.19日,全美和各州的病死率。病死率 = 死亡数/确诊数,对3)的结果DataFrame注册临时表,然后按公式计算。
在计算以上几个指标过程中,根据实现的简易程度,既采用了DataFrame自带的操作函数,又采用了spark sql进行操作。
上述Spark计算结果保存.json文件,方便后续可视化处理。由于使用Python读取HDFS文件系统不太方便,故将HDFS上结果文件转储到本地文件系统中。
在这里插入图片描述

8、数据可视化

选择使用python第三方库pyecharts作为可视化工具。在使用前,需要安装pyecharts,安装代码如下:

pip install pyecharts

具体可视化实现代码组织与showdata.py文件中。具体代码如下:

vim showdata.py

在vim文本编辑器输入以下代码

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.charts import Line
from pyecharts.components import Table
from pyecharts.charts import WordCloud
from pyecharts.charts import Pie
from pyecharts.charts import Funnel
from pyecharts.charts import Scatter
from pyecharts.charts import PictorialBar
from pyecharts.options import ComponentTitleOpts
from pyecharts.globals import SymbolType
import json
#1.画出每日的累计确诊病例数和死亡数——>双柱状图
def drawChart_1(index):root = "/home/hadoop/result/result" + str(index) +"/part-00000.json"date = []cases = []deaths = []with open(root, 'r') as f:while True:line = f.readline()if not line:                            # 到 EOF,返回空字符串,则终止循环breakjs = json.loads(line)date.append(str(js['date']))cases.append(int(js['cases']))deaths.append(int(js['deaths']))d = (Bar().add_xaxis(date).add_yaxis("累计确诊人数", cases, stack="stack1").add_yaxis("累计死亡人数", deaths, stack="stack1").set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="美国每日累计确诊和死亡人数")).render("/home/hadoop/result/result1/result1.html"))
#2.画出每日的新增确诊病例数和死亡数——>折线图
def drawChart_2(index):root = "/home/hadoop/result/result" + str(index) +"/part-00000.json"date = []cases = []deaths = []with open(root, 'r') as f:while True:line = f.readline()if not line:                            # 到 EOF,返回空字符串,则终止循环breakjs = json.loads(line)date.append(str(js['date']))cases.append(int(js['caseIncrease']))deaths.append(int(js['deathIncrease']))(Line(init_opts=opts.InitOpts(width="1600px", height="800px")).add_xaxis(xaxis_data=date).add_yaxis(series_name="新增确诊",y_axis=cases,markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值")]),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average", name="平均值")]),).set_global_opts(title_opts=opts.TitleOpts(title="美国每日新增确诊折线图", subtitle=""),tooltip_opts=opts.TooltipOpts(trigger="axis"),toolbox_opts=opts.ToolboxOpts(is_show=True),xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),).render("/home/hadoop/result/result2/result1.html"))(Line(init_opts=opts.InitOpts(width="1600px", height="800px")).add_xaxis(xaxis_data=date).add_yaxis(series_name="新增死亡",y_axis=deaths,markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值")]),markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average", name="平均值"),opts.MarkLineItem(symbol="none", x="90%", y="max"),opts.MarkLineItem(symbol="circle", type_="max", name="最高点"),]),).set_global_opts(title_opts=opts.TitleOpts(title="美国每日新增死亡折线图", subtitle=""),tooltip_opts=opts.TooltipOpts(trigger="axis"),toolbox_opts=opts.ToolboxOpts(is_show=True),xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),).render("/home/hadoop/result/result2/result2.html"))
#3.画出截止5.19,美国各州累计确诊、死亡人数和病死率--->表格
def drawChart_3(index):root = "/home/hadoop/result/result" + str(index) +"/part-00000.json"allState = []with open(root, 'r') as f:while True:line = f.readline()if not line:                            # 到 EOF,返回空字符串,则终止循环breakjs = json.loads(line)row = []row.append(str(js['state']))row.append(int(js['totalCases']))row.append(int(js['totalDeaths']))row.append(float(js['deathRate']))allState.append(row)table = Table()headers = ["State name", "Total cases", "Total deaths", "Death rate"]rows = allStatetable.add(headers, rows)table.set_global_opts(title_opts=ComponentTitleOpts(title="美国各州疫情一览", subtitle=""))table.render("/home/hadoop/result/result3/result1.html")
#4.画出美国确诊最多的10个州——>词云图
def drawChart_4(index):root = "/home/hadoop/result/result" + str(index) +"/part-00000.json"data = []with open(root, 'r') as f:while True:line = f.readline()if not line:                            # 到 EOF,返回空字符串,则终止循环breakjs = json.loads(line)row=(str(js['state']),int(js['totalCases']))data.append(row)c = (WordCloud().add("", data, word_size_range=[20, 100], shape=SymbolType.DIAMOND).set_global_opts(title_opts=opts.TitleOpts(title="美国各州确诊Top10")).render("/home/hadoop/result/result4/result1.html"))
#5.画出美国死亡最多的10个州——>象柱状图
def drawChart_5(index):root = "/home/hadoop/result/result" + str(index) +"/part-00000.json"state = []totalDeath = []with open(root, 'r') as f:while True:line = f.readline()if not line:                            # 到 EOF,返回空字符串,则终止循环breakjs = json.loads(line)state.insert(0,str(js['state']))totalDeath.insert(0,int(js['totalDeaths']))c = (PictorialBar().add_xaxis(state).add_yaxis("",totalDeath,label_opts=opts.LabelOpts(is_show=False),symbol_size=18,symbol_repeat="fixed",symbol_offset=[0, 0],is_symbol_clip=True,symbol=SymbolType.ROUND_RECT,).reversal_axis().set_global_opts(title_opts=opts.TitleOpts(title="PictorialBar-美国各州死亡人数Top10"),xaxis_opts=opts.AxisOpts(is_show=False),yaxis_opts=opts.AxisOpts(axistick_opts=opts.AxisTickOpts(is_show=False),axisline_opts=opts.AxisLineOpts(linestyle_opts=opts.LineStyleOpts(opacity=0)),),).render("/home/hadoop/result/result5/result1.html"))
#6.找出美国确诊最少的10个州——>词云图
def drawChart_6(index):root = "/home/hadoop/result/result" + str(index) +"/part-00000.json"data = []with open(root, 'r') as f:while True:line = f.readline()if not line:                            # 到 EOF,返回空字符串,则终止循环breakjs = json.loads(line)row=(str(js['state']),int(js['totalCases']))data.append(row)c = (WordCloud().add("", data, word_size_range=[100, 20], shape=SymbolType.DIAMOND).set_global_opts(title_opts=opts.TitleOpts(title="美国各州确诊最少的10个州")).render("/home/hadoop/result/result6/result1.html"))
#7.找出美国死亡最少的10个州——>漏斗图
def drawChart_7(index):root = "/home/hadoop/result/result" + str(index) +"/part-00000.json"data = []with open(root, 'r') as f:while True:line = f.readline()if not line:                            # 到 EOF,返回空字符串,则终止循环breakjs = json.loads(line)data.insert(0,[str(js['state']),int(js['totalDeaths'])])c = (Funnel().add("State",data,sort_="ascending",label_opts=opts.LabelOpts(position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="")).render("/home/hadoop/result/result7/result1.html"))
#8.美国的病死率--->饼状图
def drawChart_8(index):root = "/home/hadoop/result/result" + str(index) +"/part-00000.json"values = []with open(root, 'r') as f:while True:line = f.readline()if not line:                            # 到 EOF,返回空字符串,则终止循环breakjs = json.loads(line)if str(js['state'])=="USA":values.append(["Death(%)",round(float(js['deathRate'])*100,2)])values.append(["No-Death(%)",100-round(float(js['deathRate'])*100,2)])c = (Pie().add("", values).set_colors(["blcak","orange"]).set_global_opts(title_opts=opts.TitleOpts(title="全美的病死率")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).render("/home/hadoop/result/result8/result1.html")) 
#可视化主程序:
index = 1
while index<9:funcStr = "drawChart_" + str(index)eval(funcStr)(index)index+=1

退出vim(按Esc后,输入:wq,按回车)后编辑showdata.py文件

python3.8 showdata.py

可视化结果是.html格式的,reslut1的结果展示图保存路径为“/home/hadoop/result/result1/result1.html”,reslut2的结果展示图保存路径为“/home/hadoop/result/result2/result1.html”,其余类似递推。
在这里插入图片描述
(1)出每日的累计确诊病例数和死亡数(双柱状图)
在这里插入图片描述
(2)画出每日的新增确诊病例数和死亡数——>折线图
在这里插入图片描述
(3)画出每日的新增确诊死亡数——>折线图
在这里插入图片描述
(4)画出截止5.19,美国各州累计确诊、死亡人数和病死率—>表格
在这里插入图片描述
(5)画出美国确诊最多的10个州——>词云图
在这里插入图片描述
(6)画出美国死亡最多的10个州——>象柱状图
在这里插入图片描述
(7)找出美国确诊最少的10个州——>词云图
在这里插入图片描述
(8)找出美国死亡最少的10个州——>漏斗图
在这里插入图片描述
(9)美国的病死率—>饼状图
在这里插入图片描述

六、经验总结

通过本次实验,针对本学期的学习总结而设定,在做实验时还可重温,怎么安装Spark、Hadoop等环境的搭建,并且进行了融会贯通,本次实验我们主要是对之前所学的Python的内容进行巩固练习,并且对于一些细节处的修改;然后学习了Shark,RDD,最后学了Dataframe以及彼此之间的数据转换。
本次实验操作中,首先是将对数据集.csv文件进行格式转换为.txt的操作,方便Spark读取生成RDD或者DataFrame;接着将数据集上次到HDFS文件系统中,在这里我们要注意上传路径是个已存在文件夹,若无该文件夹,先创建再进行上述操作,否则可能会报错;接着使用Spark对数据进行分析,并将分析结果输出,注意输出路径;HDFS查看文件是否输出成功;最后进行数据的可视化,在此需要安装可视化工具Pyecharts对分析完成的数据进行可视化即可。
在这个实验中,最大的问题就是要处理好环境的问题,只要将环境配置正确,基本不会有太大的问题,在本次实验中遇到的问题希望在以后能够加以改进,继续加强自己的基础学习。本学期即将结束,我们更需要对知识多加巩固,为以后的工作场景中帮到自己,学到所学,用之所用。

参考文献

[1]林子雨、郑海山、赖永炫.《Spark编程基础(Python版)》[M].北京:人民邮电出版社,2020.
[2]林子雨.大数据技术原理与应用[M].北京:人民邮电出版社,2017.
[3]使用Jupyter Notebook调试PySpark程序,2020-6-1;http://dblab.xmu.edu.cn/blog/2575-2/.
[4]Spark安装和编程实践(Spark2.4.0),2020-12-17;http://dblab.xmu.edu.cn/blog/2501-2/.
[5]http://dblab.xmu.edu.cn/blog/2636-2/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/18719.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据分享|函数型数据分析部分省市新冠疫情数据

作者&#xff1a;Mingji Tang 统计学中传统的数据类型有截面数据和时间序列数据。这两者都只能在某一纵向或横向上探究数据&#xff0c;且部分前提条件又很难满足。而函数型数据连续型函数与离散型函数长期以来的分离状态&#xff0c;实现了离散和连续的过度。它很少依赖于模型…

利用Python爬取新冠肺炎疫情实时数据,Pyecharts画2019-nCoV疫情地图

前言 博客是2年前写的&#xff0c;中间有好多网友私信我获取源码及指出部分bug&#xff0c;感谢支持&#xff01; 取不到数据的原因是数据接口发生较大变化&#xff0c;最近刚好有时间&#xff0c;所以重新整理了一下。 第一部分 网页分析 数据源 腾讯疫情实时追踪 今天重新整…

新冠肺炎国内外疫情数据爬取

环境说明 爬虫环境&#xff1a; Python3 IDE:Pycharm 爬虫工具包&#xff1a; requests BeautifulSoup json 从腾讯新闻网爬取 使用chrome浏览器对腾讯新闻网进行页面元素审查&#xff0c;进入network&#xff0c;刷新&#xff0c;查看response&#xff1a; 寻找到这三个js文…

[Pyhon疫情大数据分析] 四.微博话题抓取及新冠肺炎疫情文本挖掘和情感分析

思来想去,虽然很忙,但还是挤时间针对这次肺炎疫情写个Python大数据分析系列博客,包括网络爬虫、可视化分析、GIS地图显示、情感分析、舆情分析、主题挖掘、威胁情报溯源、知识图谱、预测预警及AI和NLP应用等。希望该系列线上远程教学对您有所帮助,也希望早点战胜病毒,武汉…

爬取WHO各国病例数据

还在为拿不到官方病例数据而发愁吗&#xff1f; WHO各国病例数据如下&#xff1a; https://experience.arcgis.com/experience/685d0ace521648f8a5beeeee1b9125cd 我们的目的就是爬出这个图中的数据&#xff1a; 审查元素 首先我们随便点开一个国家的疫情情况&#xff1a;…

Python数据分析高薪实战第十天 EDA实战-全球新冠肺炎确诊病例趋势分析

27 初识 EDA&#xff1a;全球新冠肺炎确诊病例趋势分析 从本讲开始&#xff0c;我们会通过四个具体的案例来将我们之前学习的 Python 数据分析方面的知识全都串起来。一方面能够融会贯通&#xff0c;另一方面也能帮你掌握数据分析基本的方法论。 本讲我们首先会介绍数据分析中…

【大数据基础】2020年美国新冠肺炎疫情数据分析

https://dblab.xmu.edu.cn/blog/2738 https://dblab.xmu.edu.cn/blog/2636/ spark 安装 安装 Spark2.4.0 sudo tar -zxf ~/下载/spark-2.4.0-bin-without-hadoop.tgz -C /usr/local/ cd /usr/local sudo mv ./spark-2.4.0-bin-without-hadoop/ ./spark sudo chown -R hadoop:…

新冠疫情分析(疫情数据爬取+数据分析+网页排版展示)

新冠疫情来临&#xff0c;我简单的做一次疫情的数据分析温习我的python知识&#xff0c;也希望能帮到各位。分析中我用到的技术有&#xff1a;pyton爬取数据htmlcss将分析结果排版。用到的工具有exceltableau进行数据处理分析和绘图。数据分析中还是存在很多的不足&#xff0c;…

基于Python语言的Spark数据处理分析——2020年美国新冠肺炎疫情数据分析

基于Python语言的Spark数据处理分析——2020年美国新冠肺炎疫情数据分析 一、实验环境二、数据集1.数据集下载来源2.转换文件格式3.上传文件至HDFS文件系统 三、使用Spark进行数据分析1.读取文件并生成DataFrame2.采用python编程语言进行数据分析3.将HDFS上结果文件保存到本地文…

Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇

今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计&#xff1a; 定时爬取疫情数据存入Mysql进行数据分析制作疫情报告使用itchat给亲人朋友发送分析报告&#xff08;本文&#xff09;基于Django做数据屏幕使用Tableau做数据分析 来看看最终效果 目前已经完成&#xff…

python 爬取国内各省份新冠疫情历史数据(来自腾迅疫情)

数据接口&#xff1a; https://api.inews.qq.com/newsqa/v1/query/pubished/daily/list?adCode310000其中&#xff0c;adCode 是地区地理编码&#xff0c;可参考&#xff1a;python 全国行政地区信息爬取-腾迅位置服务平台请求方式&#xff1a; GET返回数据类型&#xff1a; J…

Python采集全球疫情数据并做可视化分析

嗨嗨&#xff0c;大家好~ 今天真的是刚睡醒就知道RNG八人确诊&#xff0c;这年头出国打个比赛都这么不容易&#xff0c;希望早日康复~ 唉&#xff0c;今天就教你们 如何用Python采集全球疫情数据&#xff0c;并做可视化分析 知识点: 爬虫基本流程requests 发送请求re 正则表…

【大数据平台】基于Spark的美国新冠肺炎疫情数据分析及预测

一、选题背景 新型冠状病毒疫情是由严重急性呼吸系统综合征冠状病毒2&#xff08;SARS-CoV-2&#xff09;导致的2019冠状病毒病&#xff08;COVID-19&#xff09;所引发的全球大流行疫情。该疾病在2019年末于中华人民共和国湖北省武汉市首次爆发&#xff0c;随后在2020年初迅速…

chatgpt画思维导图

场景&#xff1a; chatgpt写思维导图代码&#xff0c;进而在专门的软件中生成思维导图 方法 在提问中&#xff0c;输入需要的思维导图代码格式

ChatGPT与网络安全的跨时代对话

前言 ChatGPT&#xff1a;是人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过学习和理解人类的语言来进行对话&#xff0c;还能根据聊天的上下文进行互动&#xff0c;真正像人类一样来聊天交流&#xff0c;甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。G…

ChatGPT实现数据结构转换

数据结构转换 在应用系统开发和维护中&#xff0c;经常会有配置数据或客户数据需要在不同的序列化结构中相互转换的需求。不同编程语言之前&#xff0c;对数据结构的偏好也不一样&#xff0c;比如 JavaScript 一般使用 JSON、Java 一般使用 XML、Ruby 一般使用 YAML、Golang 一…

springboot3 笔记(雷峰阳)

文章目录 springboot3核心特性SpringBoot3-快速入门环境要求SpringBoot是什么快速体验1. 开发流程1. 创建项目2. 导入场景3.主程序4. 业务5. 测试6. 打包 2. 特性小结1. 简化整合2. 简化开发3. 简化配置5. 简化运维 3. Spring Initializr 创建向导3、应用分析1. 依赖管理机制2.…

我靠海外抖音搬运视频赚到了人生第一桶金:这个风口行业,真的很赚钱

在2022年新一轮疫情期间&#xff0c;“有啥方法&#xff0c;可在家快速赚钱&#xff1f;”冲上了热门话题。 “好想挣钱啊...…”单位难开工&#xff0c;生意不开张&#xff0c;咱们才惊醒&#xff1a;“领死工资的生活&#xff0c;真的好脆弱。” 平时总说副业赚钱&#xff0c…

腾讯股票接口、和讯网股票接口、新浪股票接口、雪球股票数据、网易股票数据...

2019独角兽企业重金招聘Python工程师标准>>> 腾讯股票接口&#xff1a; 分时图 http://data.gtimg.cn/flashdata/hushen/minute/sz000001.js?maxage110&0.28163905744440854 五天分时图 http://data.gtimg.cn/flashdata/hushen/4day/sz/sz000002.js?maxage432…

移动端APP——微信(1)手机桌面控件和启动画面显示与隐藏

微信原型设计1&#xff1a;手机桌面控件和启动画面显示与隐藏 微信原型设计运用的是产品原型设计软件Axure RP Pro 7.0 版。 一、手机桌面绘制 手机的外壳和桌面、以及微信图标都是直接引用的图片库中图片&#xff0c;将元件库中的image拖入&#xff0c;并单击右键导入图片即…