程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

数据可视化之项目一——疫情数据分析1

发布于2021-10-16 17:27     阅读(916)     评论(0)     点赞(0)     收藏(5)


1、爬取数据

2、数据处理

3、交互式画图

1、爬取数据

1.1——要用到的库

  1. import request # 爬虫
  2. import json # 处理数据

1.2——爬取数据

  1. def getData():
  2. url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'
  3. headers = {
  4. 'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
  5. }
  6. r = requests.get(url,headers)
  7. if r.status_code == 200:
  8. return json.loads(json.loads(r.text)['data'])
  9. data_dict = getData()

2、数据处理

2.1——要用到的库

  1. import json # 处理数据
  2. import pandas as pd # 处理数据

2.2——读取列名:字典的键

  1. keys = data_dict.keys()
  2. print(keys)

结果:

dict_keys(['lastUpdateTime', 'chinaTotal', 'chinaAdd', 'isShowAdd', 'showAddSwitch', 'areaTree']) 

2.3——读取国家:

print('现在有多少个国家有疫情:',len(data_dict.get('areaTree')),data_dict.get('areaTree')[0]['name'])

 2.3——读取省:

  1. print('现在有多少个省有疫情:',len(data_dict.get('areaTree')[0]['children']),data_dict.get('areaTree')[0]['children'])
  2. # 倒数第一个【0】是省份id,改变它,可输出不同的省份

2.4——统计所有的省份名称——使用for循环到省份

  1. for province in data_dict.get('areaTree')[0]['children']:
  2. print(province['name'])

2.5——统计每个省当天的数据 
 

  1. for province in data_dict.get('areaTree')[0]['children']: print(province['name'],province['today']) 

2.6——统计每个省总的数据情况

for province in data_dict.get('areaTree')[0]['children']: print(province['total'])

# 数据说明:这些数据目前是字典,对于pandas数据分析,我们要把这些数据变成dataframe,然后可以导入到excel或者SQL中

 2.7——将数据变成列表再变成dataframe

  1. # 1.先将数据变成列表
  2. province_list = list()
  3. for province in data_dict.get('areaTree')[0]['children']:
  4. province_info = province['total']
  5. province_info['name'] = province['name']
  6. province_list.append(province_info)
  7. # 2.再变成dataframe
  8. province_df = pd.DataFrame(province_list)

2.8——查看数据类型

print(province_df.info())

2.9——按照数据类型来删除datafram的列

  1. #按照数据类型删除列
  2. #include=包含什么类型, exclude=不包含什么类型
  3. province_df = province_df.select_dtypes(exclude=['bool'])

 2.10——用tolist把省份的名称和累计确诊的数据转换成list

  1. province_name = province_df.name.tolist()
  2. print(province_name)
  3. province_confirm = province_df.confirm.tolist()
  4. print(province_confirm)

 2.11——列表生成器

  1. for tup in zip(province_name, province_confirm):
  2. print(tup)

                  

3、交互式画图

3.1——用到的库:

  1. from pyecharts.charts import Map
  2. from pyecharts import options as opts # 配色 标题

3.2——颜色配置(必须是list包裹dict)

  1. pieces = [
  2. {'min':1,'max':9,'color':'#FFE0E0'},
  3. {'min':10,'max':99,'color':'#FFC0C0'},
  4. {'min':100,'max':999,'color':'#FF9090'},
  5. {'min':1000,'max':9999,'color':'#FF6060'},
  6. {'min':10000,'max':99999,'color':'#FF3030'},
  7. {'min':100000,'max':99999,'color':'#DD0000'},
  8. {'min':1000000,'max':999999,'color':'#660000'}]

3.3——定义地图,填充数据

  1. #定义地图,填充数据
  2. china_map = Map()
  3. china_map.add(‘全国疫情分布’,[tup for tup in zip(province_name,province_confirm)],‘china’)
  4. china_map.set_global_opts(title_opts=opts.TitleOpts(title=‘中国加油!武汉加油!’),
  5. visualmap_opts=opts.VisualMapOpts(is_piecewise=True,pieces=pieces))

3.4——打印地图,生成网页

china_map.render(path="中国地图.html")   # 这个生成的html 地址可以用这个path参数来修改

4、结果展示

 

原文链接:https://blog.csdn.net/weixin_45890771/article/details/120801470



所属网站分类: 技术文章 > 博客

作者:T4yufbhhhh

链接:http://www.phpheidong.com/blog/article/174800/f0b0b792594b9b15356d/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)