- 本书赞誉
- 前言
- 目标读者
- 不适合阅读本书的读者
- 本书结构
- 什么是数据处理
- 遇到困难怎么办
- 排版约定
- 使用代码示例
- 致谢
- 第 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.4 寻找数据
就像验证数据源或编写 PDF 解析器脚本有不止一种方法一样,寻找数据也有很多种方法。本节会讲到你在线上和线下都可以使用的方法。
6.4.1 打电话
观察数据文件,并思考一个问题:数据是怎么变成现在这种格式的?通常来说,像 Excel、 PDF 甚至 Word 这样的文件类型都是人工处理的,这个人从数据源处获取数据。
如果你找到了采集数据的那个人,或许可以要到原始数据。原始数据可能是易于解析的文件格式,如 CSV 或数据库。你找到的那个人还可以回答关于采集方法和更新时间线的问题。
下面给出从数据文件中找人的一些技巧。
· 在文件中搜索联系人信息。
· 寻找署名——如果没有人名,那就寻找机构名。
· 在网络上搜索文档的文件名和标题。
· 右键单击文件,在 Windows 上选择“属性”(在 Mac 上选择“显示简介”),查看文件元数据。
去联系你能找到的每一个人。如果他不是创建文件的人,可以问他知不知道是谁创建的文件。不要害羞——你对他们的研究课题和工作感兴趣,就是对他们的恭维,他们会很乐意帮助你的。
与通信官打交道
如果你遇到这种情况——发布文件的机构希望你能和他们的通信代表谈一谈——这意味着时间可能会拖得很长。还记得一个叫作打电话的游戏吗:第一个人跟另一个人说了些什么,另一个人将所听到的内容复述给下一个人,如此这般,最后一个人的话已经与第一个人大相径庭?
要保证有效沟通,你可以做这两件事情。第一,努力建立信任。如果没有利益冲突,你可以分享你感兴趣的工作,并承诺会将该机构列为数据源。这表示你会间接宣传他们的工作,该机构也会在分享资料方面受到好评。第二,请求通信代表召开电话会议或有监督的讨论。通过电话而不是电子邮件沟通,你可以及时准确地得到问题的回答。
找到了要联系的人之后,尝试用电话联系他,或者亲自拜访。电子邮件很容易引起误会,通常时间也会拖得比较长。下面给出几个问题的例子,可以帮你思考要问什么样的问题。
· 你是如何获取第 6 页到第 200 页的数据的?
· 是否有其他格式的数据,比如 JSON、CSV、XML 或数据库?
· 数据是如何采集的?
· 能否描述一下数据采集的方法?
· 这些缩写是什么意思?
· 数据是否会更新?如何更新?何时更新?
· 是否有其他人能提供更多信息?
在等待回答的同时,你也可以开始做数据探索,这取决于项目的时间限制和目标。
6.4.2 美国政府数据
如果你对研究美国的现象感兴趣,奥巴马政府最近正在推行发布易于获取的在线数据,可以很容易找到政府机构的定期报告。快速浏览一下 Data.gov 网站,你就会发现暴雨数据(http://catalog.data.gov/dataset/ncdc-storm-events-database)、毕业率和辍学率(http://catalog.data.gov/dataset/edfacts-graduates-and-dropouts-201112)、濒危物种数据(http://catalog.data.gov/dataset/density-of-threatened-and-endangered-species)、犯罪统计(https://catalog.data.gov/dataset/total-crime-index-for-the-nations-largest-cities-3a1aa)以及其他有趣的数据集。
除了联邦数据,州政府和地方政府也都有发布数据的网站,下面我们列出了其中几个:
· 教育数据(http://datainventory.ed.gov/InventoryList)
· 选举结果(http://www.fec.gov/pubrec/electionresults.shtml)
· 人口普查数据(http://census.ire.org/)
· 环境数据(https://www.epa.gov/enviro/about-data)
· 劳工统计数据(http://www.bls.gov/)
如果在公开发布的信息里找不到你想要的,不要犹豫,直接给相应部门打电话,在电话里请求提供数据。许多政府部门都有实习生或工作人员负责处理公众获取信息的请求。
信息自由法案介绍
在美国,你可以向任意地方、州或联邦的政府机关提交信息自由法案(FOIA)申请。申请应简单明了。根据你请求的信息内容以及描述的详细程度,需要用的时间可能会有很大不同。
美国政府建立了 FOIA 网站(https://foiaonline.regulations.gov/foia/action/public/home),你可以在上面向特定部门提交申请并追踪,但大部分政府机构都有在自己的网站上如何提交 FOIA 申请的说明。你应该在申请中给出联系信息,描述你要找的数据记录,以及如果有复印费的话你愿意交多少钱。
好的做法是,尽可能详细描述你要找的数据记录,但又不过分限制搜索的范围。你可以这么想,搜索范围太宽泛,网站会返回数百万条记录(你需要手动挑选,可能还要付费)。另一方面,如果搜索过于具体,你可能会漏掉与话题密切相关的记录。当然了,根据你第一次申请找到的信息,你总可以提交更多的 FOIA 申请。搜索过程也很有意思,不是么?
如果你想要的是美国之外政府和机构的信息,维基百科给出了世界各国信息自由法律的列表(https://en.wikipedia.org/wiki/Freedom_of_information_laws_by_country)。想了解关于美国 FOIA 的更多内容,可参阅电子前沿基金会(Electronic Frontier Foundation)的建议(https://www.eff.org/issues/transparency/foia-how-to)。
6.4.3 全球政府和城市开放数据
获取政府数据有很多种方法,这取决于你想研究的国家,以及你是否生活在那个国家。由于我们更熟悉美国的政策,所以我们不会宣称这是一份全面的清单。如果你想要分享本书没有提到而又很有用的开放数据,请随时和我们联系!
我们建议对政府数据集也要做真实性核查,特别是对有侵犯人权历史的政府更要仔细核查。将所有的判断力用到所有数据上,果断给联系人打电话或发邮件,进一步咨询数据的采集方法。
01. 欧盟和英国
如果你对欧盟或英国的数据感兴趣,可以找到许多数据门户网站。下面一些网站是由一些机构和开放数据爱好者创建的,如果你想寻找特定的数据集,可以和网站所有者直接联系。
· 欧盟开放数据(http://publicdata.eu/)
· 欧罗巴开放数据(http://open-data.europa.eu/)
· 全天开放关联数据(http://latc-project.eu/)
· 英国政府数据(https://data.gov.uk/)
02. 非洲
如果你对非洲国家的数据感兴趣,有许多项目正在采集数据并构建 API,供开发人员使用。许多非洲国家也有自己的开放数据门户网站(<用谷歌一搜就可以找到>)。我们挑出了一些有用的区域性项目:
· 非洲开放数据(https://africaopendata.org/)
· 南非代码(http://code4sa.org/)
· 非洲代码(https://codeforafrica.org/)
· 非洲的开放数据(http://opendataforafrica.org/)
03. 亚洲
如果你对亚洲国家和地区的数据感兴趣,它们大多数都有自己的开放数据网站。我们找出了几个令人印象深刻的数据集,以及一些机构发布的区域性数据:
· 开放城市项目(http://www.opencitiesproject.org/)
· 开放尼泊尔(http://data.opennepal.net/)
· 中国国家统计局(http://www.stats.gov.cn/english/)
· 香港开放数据(https://opendatahk.com/)
· 印尼政府开放数据(http://data.go.id/)
04. 欧盟以外的欧洲、中亚、印度、中东和俄罗斯
在欧盟之外,许多中亚、中欧和中东的国家也有自己的政府开放数据网站。我们给出了其中一些网站,但如果你知道你想研究的国家和地区并希望用母语来访问相关数据,语言技能是最重要的(<谷歌 Chrome 浏览器会尝试自动翻译网页,所以即使语言不通也可以找到有用的数据>)。
· 俄罗斯政府数据网站(http://data.gov.ru/)
· PakReport——巴基斯坦开放数据和地图(http://pakreport.org/)
· 印度开放数据(https://data.gov.in/)
· 土耳其开放统计数据(http://www.turkstat.gov.tr/Start.do)
05. 南美和加拿大
许多南美国家都有自己的开放数据网站,通过搜索很容易找到。加拿大也有针对统计数据的开放数据门户网站。我们给出了其中一些网站,同时建议你去网上搜索,寻找你感兴趣的特定部门或政府。
· 加拿大统计数据(http://www.rdc-cdr.ca/datasets-and-surveys)
· 加拿大开放数据(http://open.canada.ca/en)
· 巴西开放数据(http://dados.gov.br/)
· 墨西哥开放数据(http://datos.gob.mx/)
· 拉丁美洲开放数据(http://www.opendatalatinoamerica.org/)
· 发展中的加勒比地区(https://www.developingcaribbean.org/#/)
6.4.4 组织数据和非政府组织数据
无论是地方组织还是国际组织,都有大量跨州或跨国的数据集资源,比如气候变化数据、国际商贸数据和全球运输数据。如果政府并没有采集与你的主题相关的数据(关于宗教细节、吸毒、社区支持网络等的数据),或者政府数据不可靠,或者政府没有开放数据门户网站的话,你可以通过 NGO 或开放数据组织找到相关数据。下面列出了一些组织,但还有更多的组织在为数据的公开交换和访问而奋斗。
· 联合国开放数据(http://data.un.org/)
· 联合国发展计划署数据(http://open.undp.org/)
· 开放知识基金会(https://okfn.org/)
· 世界银行数据(http://data.worldbank.org/)
· 维基解密(https://wikileaks.org/)
· 国际援助透明度数据集(http://www.iatiregistry.org/)
· DataHub(https://datahub.io/)
· 人口资料局(http://www.prb.org/DataFinder.aspx)
6.4.5 教育数据和大学数据
世界各地的大学和研究生部都在不断地研究并发布数据集,从生物科学的进展到本土文化与周边生态栖息地的关联性,涵盖范围很广。很难想象教育领域还没有讨论过某一主题,所以大学是获取最新专题数据的好去处。大多数研究者都乐于听到有人对他们的课题感兴趣,所以我们建议你直接联系合适的部门或作者,以获取更多信息。如果你不知道从哪里开始,下面有几个不错的选择。
· Lexis Nexis(http://www.lexisnexis.com/)
· 谷歌学术搜索(https://scholar.google.com/)
· 康奈尔大学 arXiv 项目(http://arxiv.org/)
· UCI 机器学习数据集(http://archive.ics.uci.edu/ml/)
· 通用数据集倡议(http://www.commondataset.org/)
6.4.6 医学数据和科学数据
与大学类似,科学和医学研究部门和组织也都拥有大量优质的数据资源。在科学研究中搜索是十分困难的,但不要气馁——如果你能找到用于研究的数据集,它们使用的研究术语往往并不相同。如果你想到某一个特定的研究者,我们建议直接联系他。下面列出了一些汇总的数据集:
· 开放科学数据云(https://www.opensciencedatacloud.org/publicdata/)
· 开放科学目录(http://www.opensciencedirectory.net/)
· 世界卫生组织数据(http://www.who.int/gho/database/en/)
· Broad 研究所开放数据(http://www.broadinstitute.org/scientific-community/data)
· 人类连接组项目(<神经通路映射>)(http://www.humanconnectomeproject.org/)
· UNC 精神病基因组协会(http://www.med.unc.edu/pgc/)
· 社会科学数据集(http://3stages.org/idata/)
· CDC 医学数据(http://www.cdc.gov/nchs/fastats/)
6.4.7 众包数据和API
如果你的想法或问题更适合众包,则可以利用互联网及大量的论坛、服务和社交媒体来创建自己的问题,并用数据挖掘方法找到这些问题的答案。像 Twitter 和 Instagram 这样的服务拥有数亿用户,上面还有好用的应用编程接口(API)。API 是一些协议或工具,允许用软件或代码与另一个系统交互。在我们的例子中,我们使用的一般是基于网络的 API,可以发送网络请求并从服务中获取数据。一般来说,不到一个小时的设置,API 访问就可以获取数百万条数据记录。
在第 13 章我们会更深入地介绍 API,现在,我们在表 6-1 中对比了使用 API 的一些基本优点和缺点。
表6-1:使用API
优点 | 缺点 |
即时访问可用的数据 | 大量 API 系统不可靠(选择性偏差) |
数据量很大 | 数据过载 |
你不必担心存储问题,你可从服务的存储中访问数据 | 可靠性问题,依赖于 API 访问限制或停机时间 |
可以看到,API 的优点和缺点各占一半。如果找到一个你想用的 API,你可以制定一些规则,规定如何使用 API,以及 API 无法访问时应该怎么做(你可能希望把响应内容保存在本地,避免遇到停机问题)。长时间对响应内容进行采集,也可以消除研究中的一些选择性偏差。
除了社交网络服务之外,还有许多网站可以发布你的问题和想法,以寻求众包回答。选择与话题相关的专家论坛,还是自己发布调查并利用自己的频道传播,这由你自己决定,但如果用的是你自己的研究问题和方法,你一定要对样本大小和样本误差作出解释。想要做附带详细引文的抽样调查,更详细的介绍内容可优先参考威斯康星大学的调查指南(http://oqi.wisc.edu/resourcelibrary/uploads/resources/Survey_Guide.pdf)。
想了解其他方面的众包数据,可查看:
· 盖洛普民意调查(http://www.gallup.com/)
· 欧洲社会调查(http://www.europeansocialsurvey.org/data)
· 路透社民意调查(http://polling.reuters.com/)
可用的数据量是巨大的,在大量的噪声数据中,找出你能回答的问题并搞清楚应该如何回答这些问题,可不是一件容易的事情。下面我们讲几个案例研究,让你更好地了解如何寻找数据来回答自己的问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论