用 Python Pandas 分析新冠数据教程1

简介: 今天开始我们用 Python 、jupyter notebook、pandas等来进行数据分析的一个教程。通过之前开源的 COVID-19-Data-API 接口数据。

之前说到过,和同事们做了一个免费开源的新冠数据访问接口项目:COVID-19-Data-API。今天开始我们用 Python 、jupyter notebook、pandas等来进行数据分析的一个教程。

疫情过后,有人说剩下来的都是数字化的企业了,数据分析能力也已经是一项必备技能了,有太多的工具可以进行数据分析,前几年可能excel 还是很多人认为最有效的数据分析工具,现在可以选择面太广了,免费工具里面,Python+pandas 肯定还是最佳选择之一。准备一套完整的 Python 的入门教材+Python数据分析教程,并且用现在时髦的视频方式录制。所以先准备好教材。

下面的代码从接口处获得数据,经过简单的整理,输出。
具体来说,是获得意大利在2020年3月24日的疫情感染数据。

1 设置API的地址,调用token
2 设置headers、payload等需要调用的参数
3 通过 requests 的 get 方法来访问数据
4 通过 pandas 来简单处理数据
5 显示数据

# demo for infection/region
# input region, start_date, get data
# 接口:感染/国家地区

import requests
import pandas as pd

# API url
url = 'https://covid-19.adapay.tech/api/v1/'
# token, can call register function get the API token
token = '497115d0c2ff9586bf0fe03088cfdbe2'

# region or country
region='Italy'

# headers, need the API token
headers = {
    'token': token
}

# the params
payload = {
    'region': region,
    'start_date':'2020-03-24'
}

# call requets to load 
r = requests.get(url+'infection/region', params=payload, headers=headers)

data = r.json()

# use pandas to get the data
df = pd.DataFrame.from_dict(data['data']['region'][region])
print(df)
print('---')

通过requests 获得数据,然后pandas 整理。输出结果如下:

               2020-03-24
confirmed           69176
confirmed_add        5249
deaths               6820
deaths_add            743
recovered            8326
recovered_add         894

即便你对Python不太懂,或者一知半解,相信看到上面的代码也能够猜的七七八八,Python的可读性非常好。

要运行上面代码,最简单的方式是通过 jupyter-notebook,然后推荐下载安装 anaconda,最强的 Python 扩展程序,下载安装 anaconda 之后,直接运行 jupyter-notebook,就可以在notebook 里面的 cell 单元格中输入上面的代码。 已经有很多教程关于怎么使用 Python 下的 jupyter-notebook,可以先网上搜索一下,这里就不赘述了。

下面的例子读取一段时间范围内的数据,并对行列进行交换,便于分析和制图。基础代码延续之前的例子,所以要在上面运行的基础上继续。

# demo for infection/region
# input region, start_date, end_date, get data

# the params
payload = {
'region': region,
'start_date': '2020-03-24',
'end_date': '2020-03-31'
}

# call requets to load
r = requests.get(url+'infection/region', params=payload, headers=headers)

data = r.json()

# use pandas to get the data
df = pd.DataFrame.from_dict(data['data']['region'][region])
print(df)
print('---')

我们可以得到下面的结果:

               2020-03-24  2020-03-25  2020-03-26  2020-03-27  2020-03-28  \
confirmed_add        5249        5210        6203        5909        5974   
deaths_add            743         683         712         919         889   
recovered_add         894        1036         999         589        1434   
confirmed           69176       74386       80589       86498       92472   
deaths               6820        7503        8215        9134       10023   
recovered            8326        9362       10361       10950       12384   

               2020-03-29  2020-03-30  2020-03-31  
confirmed_add        5217        4050        4053  
deaths_add            756         812         837  
recovered_add         646        1590        1109  
confirmed           97689      101739      105792  
deaths              10779       11591       12428  
recovered           13030       14620       15729  

我们把日期和确证等交换一下行列,便于制图

# demo for infection/region
# input region, start_date, end_date, get data
# exchange the row and column by Pandas, the row index is date
# 交换数据的行和列

df = df.T
print(df)
print('---')

可以得到下面的结果:

            confirmed_add  deaths_add  recovered_add  confirmed  deaths  \
2020-03-24           5249         743            894      69176    6820   
2020-03-25           5210         683           1036      74386    7503   
2020-03-26           6203         712            999      80589    8215   
2020-03-27           5909         919            589      86498    9134   
2020-03-28           5974         889           1434      92472   10023   
2020-03-29           5217         756            646      97689   10779   
2020-03-30           4050         812           1590     101739   11591   
2020-03-31           4053         837           1109     105792   12428   

            recovered  
2020-03-24       8326  
2020-03-25       9362  
2020-03-26      10361  
2020-03-27      10950  
2020-03-28      12384  
2020-03-29      13030  
2020-03-30      14620  
2020-03-31      15729  
目录
相关文章
|
7月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
7月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
5134 1
|
7月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
551 0
|
7月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
697 0
|
7月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
7月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
7月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
7月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
8月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。

推荐镜像

更多