拓端tecdat|R、Python、Open Refine采集pdf数据,清理数据和格式化数据
原文链接:http://tecdat.cn/?p=8076
获取,清理和格式化数据
在本文中,我们将介绍一些技巧和窍门,这些技巧和窍门用于在线查找所需数据,将其存储到计算机上以及如何识别和清除“脏”数据。我们还将回顾一些常见的数据格式,以及如何从一种转换为另一种。
我们今天将使用的数据
gdp_percap.csv
世界银行关于1990年至2016年国家和国家集团人均国内生产总值(GDP)的数据,以当前国际美元计价,并根据不同地区的购买力进行了校正。
ucb_stanford_2014.csv
2014年从UC Berkeley和斯坦福大学获得的联邦政府拨款数据可从USASpending.gov下载。wr_50m_sept_6_2018.pdf
PDF,其中包含来自国际泳联,游泳和其他水上运动国际联合会的最新世界游泳记录。
搜索在线数据库
可以在线搜索许多重要的公共数据库,有些提供下载查询结果的选项。这些数据库中的大多数都提供一个简单的搜索框,但始终值得寻找高级搜索页面,该页面将提供更多选项来自定义搜索。例如,这里是ClinicalTrials.gov的高级搜索页面:
当您开始使用新的联机数据库时,请花一些时间来熟悉其搜索的工作方式:阅读帮助或常见问题解答,然后运行测试搜索以查看获得的结果。
还要找出数据库是否允许“通配符”,例如*
或%
可以放在搜索中的通配符,以获得带有单词或数字变化的结果。
从网上抓取数据
有时,您需要根据散布在一系列网页中的信息或在不允许简单下载数据或访问API的数据库中维护的信息来编译自己的数据。这就是Web抓取的地方。
使用R或Python之类的编程语言,可以编写脚本来从许多网页提取数据,或者查询Web搜索表单以逐段下载整个数据库。
我们已经通过操作Web搜索表单上的url并批量下载各个链接来执行Web抓取的某些元素。
PDF:数据
一些组织坚持将数据提供为PDF,而不是文本文件,电子表格或数据库。这使得数据难以提取。尽管您始终应该以更友好的格式(最好是CSV或其他简单的文本文件)来请求数据, 有时可能会发现自己需要从PDF中提取数据。
可以从数字PDFS中的表中提取数据。
启动 时,它会在Web浏览器中打开。但是,您加载到程序中的所有数据都将保留在计算机上-不会在线发布。
导入PDF后,突出显示第一张表中显示男子个人记录的部分单击Preview & Export Extracted Data
以查看提取的数据:
识别脏数据
在理想的世界中,我们找到的每个数据集都会经过精心策划,使我们能够开始分析和可视化,而不必担心其准确性。
但是,实际上,通常最好的可用数据都有一些缺陷,可能需要尽可能地加以纠正。因此,在开始使用新数据集之前,请将其加载到电子表格或数据库中,并查看常见错误。例如,这里是来自BMIS数据库的记录示例,其名称包括非字母字符,这显然是错误的:
一些字段提供了一些明显的检查:例如,如果您看到的邮政编码少于5位,则知道它一定是错误的。
日期也可能输入错误,因此值得扫描那些不在数据范围之内的日期。
还要扫描代表连续变量的字段中的数字,以查找任何明显的异常值。
其他常见问题是某些条目前后的空白,可能需要将其删除。
使用Open Refine清理和处理数据
在许多数据新闻项目中,检查和清除“脏”数据以及将数据处理为所需的格式可能是最耗费人力的部分。但是,Open Refine(以前称为Google Refine)可以简化任务-还可以创建可复制的脚本,以对必须以相同方式清理和处理的数据快速重复该过程。
启动Open Refine时,它将在Web浏览器中打开。但是,您加载到程序中的所有数据都将保留在计算机上-不会在线发布。
打开屏幕应如下所示:
将数据从宽格式转换为长格式
单击Choose Files
按钮并导航到文件gdp_percap.csv
。单击Next>>
,然后在下一个屏幕上确保Parse cell text into numbers, dates,...
已选中
Open Refine以绿色显示数字和日期,以黑色显示整个文本。因此,选中此按钮应该使数字变为绿色。Open Refine还应该识别数据在CSV文件中,但是如果不是,则可以使用底部的面板为数据指定正确的文件类型和格式。
屏幕现在应如下所示:
如您所见,数据是宽格式的,按区域组织了各地区的石油产量值,每年一次。要将其转换为长格式,请单击这些年的第一列中的向下的小三角形,然后选择Transpose>Transpose cells across columns into rows
。
如下所示填写对话框,确保正确地将From Column
和To Column
突出显示,并为Key column
和Value column
指定了适当的名称,并进行了Fill down in other columns
选中。
单击Transpose
,然后单击50
行链接,以查看调整后的数据的前50行:
单击右上角的Export
按钮,您将看到用于以各种文件类型(包括Comma-separated value
和Excel
电子表格)导出数据的选项。
清理和处理脏数据
单击左上角的“打开优化” 以返回到打开屏幕。从文件创建一个新项目ucb_stanford_2014.csv
。
同样,每个字段/列都有一个带有指向下方的三角形的按钮。单击这些按钮,您将获得为列创建“构面”的选项,这提供了一种强大的方式来编辑和清除数据。
All
Open Refine中的列下拉菜单可用于删除不需要的列并快速记录要保留的列。选择Edit Columns>Re-order / remove columns
以弹出此对话框:
但是,在这里我们将保留所有数据。
我们可以手动进行编辑,但是要说明Open Refine的编辑功能,请单击Cluster
按钮。在这里,您可以尝试使用不同的聚类算法来编辑:
拓端tecdat|R、Python、Open Refine采集pdf数据,清理数据和格式化数据相关推荐
- 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 拓端tecdat荣获掘金社区入驻新人奖
2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...
- 拓端tecdat荣获2022年度51CTO博主之星
相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...
- python库Camelot从pdf抽取表格数据以及python库camelot安装及使用中的一些注意事项
一.python库camelot安装及使用中的一些注意事项 1)camelot方法有两种解析模式:流解析(stream).格子解析(lattice),其中格子解析能够保留表格完整的样式,对于复杂表格来 ...
- 拓端tecdat|bilibili视频流量数据潜望镜
最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...
- python 抖音采集_抖音 数据自动化采集(多开)
本文仅供学习交流使用,如侵立删! 企鹅 : 1033383881 环境: win10 64位 python 3.6.1 appium 0.41 selenium 3.141.0 mitmproxy 4 ...
- python带你采集不可言说网站数据,并带你多重骚操作~
前言 嗨喽,大家好呀,这里是魔王呐~ 今天我们采集国内知名的shipin弹幕网站! 这里有及时的动漫新番,活跃的ACG氛围,有创意的Up主. 大家可以在这里找到许多欢乐. 目录(可根据个人情况点击你想 ...
最新文章
- 马斯克39页火星计划PPT曝光,我们能学到什么
- 推荐一个很棒的开源工作流elsa-core
- drcom linux怎么运行,Drcom_linux
- 漫步微积分三十——定积分的性质
- 虚拟机变更网卡MAC地址后的网络连接
- Kubernetes Metrics-Server
- 使用join()方法 分隔拆分后的数组
- android开发(44) 使用了 SoundPool 播放提示音
- 这款开源的中文字体,太惊艳了!
- Deilphi IDE 扩展工具:cnPack DelForEx
- “终端服务器超出了最大允许连接数”的解决方法汇总
- Address already in use: JVM_Bind:8080 关于XXX端口被占用问题的解决
- 容器化技术最佳实践1--容器化技术简介与Docker入门
- 苹果笔记本如何安装双系统
- 锂电池的正确使用:标称容量、存储条件及充放电
- 婉约情怀 作者:马步升
- 一小时内了解密码学:你需要知道的一切
- python爬知乎_python爬行求知。,爬取,知乎,精华
- CGAL官方软件包-算数和代数 1. Algebraic Foundations
- 蓝桥杯 BASIC-3:字母图形
热门文章
- 卡耐基口才艺术与人际关系1
- AngularJS开发指南6:AngularJS表单详解
- VMware esxi在线增加Linux LVM硬盘不需重新启动
- CentOS+postfix+ExtMail+amavisd-new+Spam_Locker+DSpam配置指南:七、配置Webmail-ExtMail
- 【CometOJ】CometOJ#8 解题报告
- asp.net出现【视图状态消息身份验证错误】
- 入门python之前,应该先了解这些
- 在js中对HTML的radio标签和checkbox标签的选择项进行输出
- AI 时代,程序员从小白到小牛的发展攻略丨今晚直播送机械键盘!
- 4:JAVA UUID 生成