当前位置: 首页 > news >正文

【数据挖掘】使用 Python 分析公共数据【01/10】

一、说明

        本文讨论了如何使用 Python 使用 Pandas 库分析官方 COVID-19 病例数据。您将看到如何从实际数据集中收集见解,发现乍一看可能不那么明显的信息。特别是,本文中提供的示例说明了如何获取有关疾病在不同国家/地区传播速度的信息。

二、准备您的工作环境

        要继续操作,您需要在 Python 环境中安装 Pandas 库。如果您还没有它,您可以使用 pip 命令安装它:

pip install pandas 

        然后,您需要选择一个实际的数据集来使用。对于本文中提供的示例,我需要一个数据集,其中包含按国家/地区和日期划分的COVID-19确诊病例总数的信息。这样的数据集可以从 Novel Coronavirus (COVID-19) Cases Data - Humanitarian Data Exchange 下载为CSV文件:time_series_covid19_confirmed_global_narrow.csv

三、加载数据并准备进行分析

        在将下载的 CSV 文件读取到 pandas 数据帧之前,我手动删除了不必要的第二行:

#adm1+name,#country+name,#geo+lat,#geo+lon,#date,#affected+infected+value+num 

        然后我把它读到熊猫数据帧中:

>>> import pandas as pd
>>> df= pd.read_csv("/home/usr/dataset/time_series_covid19_confirmed_global_narrow.csv") 

Let’s now take a closer look at the file structure. The simplest way to do it is with the head method of the dataframe object:

>>> df.head()Province/State Country/Region Lat Long Date Value
0 NaN Afghanistan 33.0 65.0 2020–04–01 237
1 NaN Afghanistan 33.0 65.0 2020–03–31 174
2 NaN Afghanistan 33.0 65.0 2020–03–30 170
3 NaN Afghanistan 33.0 65.0 2020–03–29 120
4 NaN Afghanistan 33.0 65.0 2020–03–28 110 

        由于我们不打算执行考虑受影响国家在地理上彼此距离有多近的复杂分析,因此我们可以安全地从数据集中删除地理纬度和地理经度列。这可以按如下方式完成:

<span style="background-color:#f2f2f2"><span style="color:#242424">>>> df.drop("Lat", axis=1, inplace=True)
>>> df.drop("Long", axis=1, inplace=True)</span></span>

        我们现在的内容应该如下所示:

>>> df.head()Province/State Country/Region Date Value
0 NaN Afghanistan 2020–04–01 237
1 NaN Afghanistan 2020–03–31 174
2 NaN Afghanistan 2020–03–30 170
3 NaN Afghanistan 2020–03–29 120
4 NaN Afghanistan 2020–03–28 110 

在我们开始删除不必要的行之前,了解数据集中有多少行也会很有趣:

>>> df.count
…[18176 rows x 4 columns]> 

四、压缩数据集

        浏览数据集中的行,您可能会注意到某些国家/地区的信息是按地区(例如中国)详细说明的。但您需要的是整个国家的合并数据。要完成此合并步骤,您可以按如下方式将 groupby 操作应用于数据集:

>>> df = df.groupby(['Country/Region','Date']).sum().reset_index() 

此操作应该减少数据集中的行数,消除省/州列:

>>> df.count
...[12780 rows x 3 columns] 

五、执行分析

        假设您需要在初始阶段确定疾病在不同国家的传播速度。比如说,你想知道从至少报告1500例病例的那一天起,疾病达到100例需要多少天。

        首先,您需要过滤掉受影响不大且确诊病例人数尚未达到大量国家/地区。这可以按如下方式完成:

>>> df = df.groupby(['Country/Region'])
>>> df = df.filter(lambda x: x['Value'].mean() > 1000) 

然后,您可以仅检索满足指定条件的那些行:

>>> df = df.loc[(df['Value'] > 100) & (df['Value'] < 1500)] 

        完成这些操作后,应显著减少行数。

>>> df.count
… Country/Region Date Value
685 Austria 2020–03–08 104
686 Austria 2020–03–09 131
687 Austria 2020–03–10 182
688 Austria 2020–03–11 246
689 Austria 2020–03–12 302
… … … …
12261 United Kingdom 2020–03–11 459
12262 United Kingdom 2020–03–12 459
12263 United Kingdom 2020–03–13 802
12264 United Kingdom 2020–03–14 1144
12265 United Kingdom 2020–03–15 1145[118 rows x 3 columns] 

        此时,您可能需要查看整个数据集。这可以通过以下代码行完成:

>>> print(df.to_string())Country/Region Date Value
685 Austria 2020–03–08 104
686 Austria 2020–03–09 131
687 Austria 2020–03–10 182
688 Austria 2020–03–11 246
689 Austria 2020–03–12 302
690 Austria 2020–03–13 504
691 Austria 2020–03–14 655
692 Austria 2020–03–15 860
693 Austria 2020–03–16 1018
694 Austria 2020–03–17 1332
1180 Belgium 2020–03–06 109
1181 Belgium 2020–03–07 169… 

        剩下的就是计算每个国家/地区的行数。

>>> df.groupby(['Country/Region']).size()
>>> print(df.to_string())Country/Region
Austria        10
Belgium        13
China          4
France         9
Germany        10
Iran           5
Italy          7
Korea, South   7
Netherlands    11
Spain          8
Switzerland    10
Turkey         4
US             9
United Kingdom 11 

        上述清单回答了某个国家从报告至少1500例病例之日起,该疾病需要多少天才能达到大约100例确诊病例的问题。

六、后记

        本系列文本,从这里开头,后边我们将陆续深入进行数据分析过程叙述。

 Yuli Vasiliev – Medium

相关文章:

【数据挖掘】使用 Python 分析公共数据【01/10】

一、说明 本文讨论了如何使用 Python 使用 Pandas 库分析官方 COVID-19 病例数据。您将看到如何从实际数据集中收集见解&#xff0c;发现乍一看可能不那么明显的信息。特别是&#xff0c;本文中提供的示例说明了如何获取有关疾病在不同国家/地区传播速度的信息。 二、准备您的…...

html怎么插入视频?视频如何插入页面

html怎么插入视频&#xff1f;视频如何插入页面 HTML 的功能强大&#xff0c;基本所有的静态效果都可以在此轻松呈现&#xff0c;各种视频网站内有大量的视频内容&#xff0c;本篇文章教你如何在 html 中插入视频 代码如下&#xff1a; <!DOCTYPE html> <html> …...

游戏服务端性能测试

导语&#xff1a;近期经历了一系列的性能测试&#xff0c;涵盖了Web服务器和游戏服务器的领域。在这篇文章中&#xff0c;我将会对游戏服务端所做的测试进行详细整理和记录。需要注意的是&#xff0c;本文着重于记录&#xff0c;而并非深入的编程讨论。在这里&#xff0c;我将与…...

【使用Zookeeper当作注册中心】自己定制负载均衡常见策略

自己定制负载均衡常见策略 一、前言随机&#xff08;Random&#xff09;策略的实现轮询&#xff08;Round Robin&#xff09;策略的实现哈希&#xff08;Hash&#xff09;策略 一、前言 大伙肯定知道&#xff0c;在分布式开发中&#xff0c;目前使用较多的注册中心有以下几个&…...

设计模式十七:迭代器模式(Iterator Pattern)

迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;它提供了一种访问聚合对象&#xff08;例如列表、集合、数组等&#xff09;中各个元素的方法&#xff0c;而无需暴露其内部表示。迭代器模式将遍历元素和访问元素的责任分离开来&#xff0…...

Python制作爱心并打包成手机端可执行文件

前言 本文是想要将python代码打包成在手机上能执行的文件 尝试了几个库&#xff0c; 有这也那样的限制&#xff0c;最终还是选了BeeWare 环境&#xff1a;python3.7.x 开始 找到打包有相关工具os-android-apk-builder&#xff0c;buildozer&#xff0c;cx_Freeze&#xff…...

使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

目录 docker-compose语法&#xff08;更多说明可查看下面代码&#xff09;imagehostnamecontainer_namevolumesnetworks yml文件的使用启动停止 开发环境&#xff08;这里以python为例&#xff09;部署环境nginxmysqltomcatjar包打包后的可执行程序 常见问题与解决方案多个容器…...

管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——支持加强——第三节——分类3——类比题干支持

文章目录 第三节 支持加强-分类3-类比题干支持真题(2017-28)-支持加强-正面支持-表达“确实如此”真题(2017-36)-支持加强-正面支持-表达“确实如此”真题(2017-39)-支持加强-正面支持-方法有效或方法可行,但多半不选择方法无恶果真题(2017-50)-支持加强真题(2018-2…...

搜索旋转排序数组

整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nums[1], …, …...

Steam搬砖项目:最长久稳定的副业!

项目应该大家都有听说话&#xff0c;但是细节问题&#xff0c;如何操作可能有些不是很清楚&#xff0c;今天在这里简单分享一下。 这个Steam搬砖项目主要赚钱汇率差和价值差&#xff0c;是一个细分领取的小项目。 不用引流&#xff0c;时间也是比较自由的&#xff0c;你可以兼…...

最小化安装移动云大云操作系统--BCLinux-R8-U8-Server-x86_64-230802版

CentOS 结束技术支持&#xff0c;转为RHEL的前置stream版本后&#xff0c;国内开源Linux服务器OS生态转向了开源龙蜥和开源欧拉两大开源社区&#xff0c;对应衍生出了一系列商用Linux服务器系统。BC-Linux V8.8是中国移动基于龙蜥社区Anolis OS 8.8版本深度定制的企业级X86服务…...

神经网络基础-神经网络补充概念-05-导数

概念 导数是微积分中的一个概念&#xff0c;用于描述函数在某一点的变化率。在数学中&#xff0c;函数的导数表示函数值随着自变量的微小变化而产生的变化量&#xff0c;即斜率或变化率。 假设有一个函数 f(x)&#xff0c;其中 x 是自变量&#xff0c;y f(x) 是因变量。函数…...

kubernetes — 安装Ingress

1、 Ingress 1、安装-Nginx-Ingress kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml 2、设为默认的Ingress [rootk8s01 ~]# vim default_ingress.yaml apiVersion: networking.…...

SSR使用HTTPS

1.安装 npm i browser-sync 2. 再angular.json里配置 "serve-ssr": {"builder": "nguniversal/builders:ssr-dev-server","options": {"ssl": true,"sslCert": "./node_modules/browser-sync/certs/server…...

Spring Boot中使用validator如何实现接口入参自动检验

文章目录 一、背景二、使用三、举例 一、背景 在项目开发过程中&#xff0c;经常会对一些字段进行校验&#xff0c;比如字段的非空校验、字段的长度校验等&#xff0c;如果在每个需要的地方写一堆if else 会让你的代码变的冗余笨重且相对不好维护&#xff0c;如何更加规范和优…...

thinkphp 5 实现UNION ALL 3个联表查询,并且带上搜索条件,名称,时间,手机号

在ThinkPHP 5中实现带有搜索条件、名称、时间和手机号的3个联表查询&#xff08;UNION ALL&#xff09;&#xff0c;您可以按照以下步骤进行操作&#xff1a; 确保已经配置好数据库连接信息和相关的模型。 使用union()方法来构建3个联表查询&#xff0c;同时在每个查询中添加所…...

React 之 Router - 路由详解

一、Router的基本使用 1. 安装react-router react-router会包含一些react-native的内容&#xff0c;web开发并不需要 npm install react-router-dom 2. 设置使用模式 BrowserRouter或HashRouter Router中包含了对路径改变的监听&#xff0c;并且会将相应的路径传递给子组件Bro…...

框架分析(1)-IT人必须会

框架分析&#xff08;1&#xff09;-IT人必须会 专栏介绍当今主流框架前端框架后端框架移动应用框架数据库框架测试框架 Angular关键特点和功能&#xff1a;组件化架构双向数据绑定依赖注入路由功能强大的模板语法测试友好 优缺点分析优点缺点 总结 专栏介绍 link 主要对目前市…...

前端面试的游览器部分(7)每天10个小知识点

目录 系列文章目录前端面试的游览器部分&#xff08;1&#xff09;每天10个小知识点前端面试的游览器部分&#xff08;2&#xff09;每天10个小知识点前端面试的游览器部分&#xff08;3&#xff09;每天10个小知识点前端面试的游览器部分&#xff08;4&#xff09;每天10个小知…...

认识Junit

1. 前言 2. Junit注解 2.1. 常用的注解 2.1.1. Test 表示当前方法是一个测试方法(不需要main来执行) Test void Test01() throws InterruptedException {System.out.println("测试用例1");WebDriver webDriver new ChromeDriver();webDriver.get("https:/…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项

一、条形码识别改名使用教程 打开软件并选择处理模式&#xff1a;打开软件后&#xff0c;根据要处理的文件类型&#xff0c;选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件&#xff0c;就选择 “PDF 识别模式”&#xff1b;若是处理图片文件&…...