Python数据可视化2.2 Ebola案例

简介:

2.2 Ebola案例


为了说明上述步骤如何得到容易理解的可视化结果,不妨考虑一下我们先前提出的问题:2014年,报道的伊波拉病毒(Ebola)死亡人数是多少?数据来自世界卫生组织(http://www.who.int/en/)或者人道主义数据交换中心(https://hdx.rwlabs.org)。虽然该数据的原始来源是世界卫生组织(World Health Organization,WHO),但人道主义数据交换中心(Humanitarian Data Exchange,HDX)是贡献者。然而,请注意,我们将在同一个地方得到本书的所有数据,以及Python资源代码。

该数据包括Ebola疾病在几内亚、利比里亚、马里、尼日利亚、塞内加尔、塞拉利昂、西班牙、英国和美国的传播信息。

该信息由以下网址提供:https://data.hdx.rwlabs.org/dataset/ebola-cases-2014/。

CSV格式的数据文件的内容包括指标、国家名称、日期和与指标相关的死亡数量或感染数量。一共有36个指标,前10个指标如下(其他指标可见附录):

过去7天可能的Ebola案例数

过去21天可能的Ebola死亡数

过去21天疑似Ebola案例数

过去7天疑似Ebola案例数

过去21天疑似Ebola死亡数

过去21天Ebola案例的确认比例

过去7天Ebola案例的确认比例

过去21天Ebola死亡的确认比例

过去7天疑似Ebola案例比例

过去21天疑似Ebola死亡比例

了解完这些指标后,本章一开始提出的问题“2014年,报道的Ebola死亡人数是多少?”可以转换为多组问题。为了简单起见,我们持续关注一个问题,并观察如何才能够进一步分析这些数据,得到一个可视化方法。首先,让我们看一些数据文件的读取方法。

对于任何一种编程语言,读取文件的方法不止一种,有一种是用Python中的pandas库。这种方法有高性能的数据结构和数据分析工具。另一个选择是用csv库读取CSV格式的数据文件。这两种方法有什么不同呢?它们都可以读取数据。在旧版的pandas中,会遇到大数据的记忆映射问题(如果CSV格式的数据文件很大),但是现在已完成优化。代码如下:

 

上面的过滤也可以用pandas完成,具体如下:

 

数据可从http://www.knapdata.com/python/ebola.csv下载。下一步是用read text (rt)格式打开数据文件。因为指标字符串中有deaths这个单词,所以在读取每一行后,可以过滤死亡人数为0的那行。这是一种非常直接的过滤,被用于忽略没有报道的案例或死亡情况。下面只给出过滤后数据的前五行:

 

 

如果每个国家报道的Ebola案例的所有数据是分散的,我们怎样进一步过滤?其实可以按国家列将它们进行分类。该数据文件有四行:indicator、country、date和number value。代码如下:

 

看完数据后,有两个指标是我们感兴趣的:

确认的Ebola死亡累积数

确认的、可能的和疑似的Ebola死亡累积数

通过多次可视化应用,我们也注意到其中一些国家,几内亚、利比里亚和塞拉利昂比其他国家有更多被确认的死亡人数。现在,我们想看看应该怎样对报道中这三个国家的死亡人数进行绘图:

 

 

 

结果看起来如下图所示。

我们可以对另一个指标绘制类似的图,即:确认的、可能的、疑似的Ebola死亡累积数。(虽然这不是最好的方法,但可以通过绘制一个类似的图来展示更多国家的数据信息。)

 

 

 

 

结果应该如下图所示:

相关文章
|
1天前
|
数据采集 前端开发 NoSQL
Python编程异步爬虫实战案例
Python编程异步爬虫实战案例
10 2
|
1天前
|
数据采集 自然语言处理 API
Python反爬案例——验证码的识别
Python反爬案例——验证码的识别
|
3天前
|
iOS开发 MacOS Python
Python编程小案例—利用flask查询本机IP归属并输出网页图片
Python编程小案例—利用flask查询本机IP归属并输出网页图片
11 1
|
4天前
|
存储 数据可视化 Python
Python编程中的数据可视化技术
在数据驱动的世界中,将复杂的数据集转换为易于理解的视觉表示形式至关重要。本文将深入探讨如何使用Python进行数据可视化,包括选择合适的库、处理数据和设计有效的图表。我们将一起学习如何让数据讲故事,并确保你的信息传达清晰且有影响力。
|
4天前
|
存储 大数据 Python
案例学Python:filter()函数的用法,高级!
`filter()`函数是Python中处理序列数据的强大工具,它允许我们高效地根据条件过滤元素。通过结合匿名函数、常规函数或直接利用Python的内置逻辑,`filter()`提供了灵活且高效的过滤机制,尤其在大数据处理和内存敏感的应用中展现出其价值。掌握 `filter()`的使用,不仅能提升代码的可读性和效率,还能更好地适应Python的函数式编程风格。
14 2
|
5天前
|
Python
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
Python编程案例:同一工作簿不同表单特定数据添加到工作簿的另一表单里
10 1
|
2天前
|
数据可视化 数据挖掘 大数据
使用Python进行简单数据可视化
【10月更文挑战第2天】使用Python进行简单数据可视化
13 0
|
2天前
|
人工智能 API iOS开发
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
ChatGPT编程Python小案例(拿来就用)—解压zip压缩文
10 0
|
3天前
|
人工智能 小程序 Python
Python编程小案例——编一个事件提醒弹窗小程序
Python编程小案例——编一个事件提醒弹窗小程序
|
5天前
|
IDE 开发工具 iOS开发
Python编程案例:招生档案按省份地区归档
Python编程案例:招生档案按省份地区归档
10 0