- 本书赞誉
- 前言
- 目标读者
- 不适合阅读本书的读者
- 本书结构
- 什么是数据处理
- 遇到困难怎么办
- 排版约定
- 使用代码示例
- 致谢
- 第 1 章 Python 简介
- 第 2 章 Python 基础
- 第 3 章 供机器读取的数据
- 第 4 章 处理 Excel 文件
- 第 5 章 处理 PDF 文件 以及用 Python 解决问题
- 第 6 章 数据获取与存储
- 第 7 章 数据清洗:研究、匹配与格式化
- 第 8 章 数据清洗:标准化和脚本化
- 第 9 章 数据探索和分析
- 第 10 章 展示数据
- 第 11 章 网页抓取:获取并存储网络数据
- 第 12 章 高级网页抓取:屏幕抓取器与爬虫
- 第 13 章 应用编程接口
- 第 14 章 自动化和规模化
- 第 15 章 结论
- 附录 A 编程语言对比
- 附录 B 初学者的 Python 学习资源
- 附录 C 学习命令行
- 附录 D 高级 Python 设置
- 附录 E Python 陷阱
- 附录 F IPython 指南
- 附录 G 使用亚马逊网络服务
- 关于作者
- 关于封面
6.5 案例研究:数据调查实例
我们将简单介绍几个不同的兴趣领域和问题,这样你可以知道第一步该做些什么。
6.5.1 埃博拉病毒危机
比方说,你对调查西非的埃博拉病毒危机感兴趣。你会怎么开始调查?你可能很快会想到用谷歌搜索“Ebola crisis data”(埃博拉病毒危机数据)。你发现有许多国际组织致力于追踪病毒的传播,这些组织提供了许多工具,任你使用。首先,你会找到 WHO 的情况报告(http://apps.who.int/ebola/ebola-situation-reports)。WHO 网站上有关于最新病例和死亡的信息,还有交互式地图显示受影响的地区,以及应对措施的关键绩效指标,这些内容似乎都是每周更新。数据有 CSV 和 JSON 两种格式,是真实可靠、定期更新的信息来源。
你要不断挖掘寻找其他可用的资源,而不是在出现的第一个结果这里就止步不前。经过进一步搜索,我们找到 GitHub 用户 cmrivers 的仓库(https://github.com/cmrivers/ebola),里面是来自许多政府和媒体数据源的原始数据汇总。由于我们知道该用户,可以通过联系方式联系到他们,所以我们还可以核实数据最近一次的更新时间,并咨询任何与数据采集方法有关的问题。我们学过如何处理这些数据格式(CSV、PDF 文件),所以处理起来应该不成问题。
进一步深入挖掘,你可能会专注于一个具体的问题,比如:“在安全下葬方面采取了哪些预防措施?”你找到一份由 Sam Libby(https://data.humdata.org/user/libbys)维护的报告,报告内容是关于安全、庄严的葬礼的(https://data.humdata.org/dataset/safe-and-dignified-burial-teams)。太棒了!遇到任何问题你都可以直接联系 Sam。
你已经找到了一系列很好的初始数据源,并确认它们来自你信任的组织,同时还找到了联系人,在研究过程中可以向他寻求更多信息。下面我们来看另一个例子。
6.5.2 列车安全
再比方说,你对美国的列车安全感兴趣。你的问题可能是:有哪些影响列车安全的不利因素?首先,你可能看过之前关于列车安全的研究。你找到了联邦铁路管理局(FRA),其核心职责就是确保铁路安全可用。在 FRA 网站上(https://www.fra.dot.gov/)阅读了一些报告和情况简报后,你发现大部分报告都显示,列车事故发生的原因是轨道养护不佳或人为失误。
你对人为失误更感兴趣,所以决定深入挖掘这一点。你发现 FRA 在铁路员工和安全方面发布了大量的报告。你找到一份关于铁路工人睡眠类型的报告(http://catalog.data.gov/dataset/work-schedules-and-sleep-patterns-of-railroad-employees-train-and-engine-service),可以部分解释人为失误发生的原因。你还找到联邦法规关于对铁路员工做药物和酒精测试的一些资料(http://www.fra.dot.gov/eLib/details/L02699)。
现在你可能有更多的问题,你可以将范围缩小,详细阐述你真正想了解的问题。现在你的问题可能会变成“喝酒导致的铁路事故发生频率是多少”或者“火车工程师加班或劳累过度的频率是多少”。你已经有了初步的可信数据集,还可以在研究过程中致电 FRA 了解更多信息。
6.5.3 足球运动员的薪水
再比如说,你对足球(用脚踢的足球,不是猪皮做的橄榄球)运动员的薪水感兴趣。这些运动员能赚多少钱,每个运动员对球队的影响有多大?
初次搜索之后,你发现数据太杂,决定专注研究某一个联赛。比方说你选择英超联赛。你在一个可能从没听说过的网站上找到了英超俱乐部的薪水列表(http://www.tsmplug.com/football/premier-league-player-salaries-club-by-club/)。看来作者已经编辑好了每一支球队的列表,以及每一名球员的薪水列表(http://www.tsmplug.com/football/man-city-players-salaries-2014/)。为了更好地理解数据的来源,并保证数据源可信,你应该联系页面中给出的作者,以获取更多信息。
如果你同时搜索球员代言,可能会找到这个统计表(http://www.statista.com/statistics/266636/best-paid-soccer-players-in-the-2009-2010-season/),里面列出了顶薪足球运动员的代言费用和薪水数据。你可能也想去联系作者,询问是否有最新的代言费用数据,可以和最新的赛季作对比。
现在你已经有了薪水数据,你还想了解一些统计数据,看看顶薪运动员究竟有多优秀。你在英超联赛网站(http://www.premierleague.com/content/premierleague/en-gb/players/index.html)上找到一些球员统计数据。这可能是你只能用网络抓取来获取的数据(第 11 章会有更多关于网络抓取的内容),但你知道数据来源是可靠的。继续搜索球员统计数据,你可能会在 top assists 网站(http://www.espnfc.com/barclays-premier-league/23/statistics/assists)上找到更多数据。你还可以分析点球统计数据(http://eplreview.com/statistics-penalty.htm)。同样,你应该调查任何数据源的有效性,这一点并不容易验证。
现在你可以开始数据分析,计算每一名球员进球、红牌和点球的价值!
6.5.4 童工
最后,我们来探索一个本书后续章节将要回答的问题。我们将专注研究国际童工危机。当思考国际话题时,我们立刻想到要寻找国际组织。
我们发现 UNICEF 的开放数据网站致力于发布童工报告(http://data.unicef.org/child-protection/child-labour.html)。事实上,UNICEF 拥有全球妇女儿童健康状况的全部数据集(http://mics.unicef.org/)。这些数据集可能对回答类似“早婚对童工率是否有影响?”这样的问题很有帮助。
在寻找政府数据时,我们找到了美国劳工部关于全球童工的年度报告(https://www.dol.gov/agencies/ilab/resources/reports/child-labor)。这些报告可以用来与 UNICEF 的数据集相互对照。
另外,我们还找到国际劳工组织(ILO)关于童工的趋势报告(http://www.ilo.org/ipec/Informationresources/WCMS_IPEC_PUB_23015/lang--en/index.htm)。ILO 报告似乎给出了许多不同数据集的链接,应该是童工历史数据的很好参考。
我们还汇总了下面几章会用到的几个数据集。我们将这些数据集都放在数据仓库中(https://github.com/jackiekazil/data-wrangling),以便后续使用。
前面已经探讨了如何发现问题并搜索资源,下面我们来看一下数据存储。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论