提取PDF表格?方法很简单!

我们在工作中经常能碰到表格存储在pdf文档里的情况,要编辑文档就需要将表格提取出来,通过tabula软件提取表格然后使用openrefine来将表格整理成原来的结构是很好的方法,小伙伴们学起来吧,再也不用为碰到pdf表格发愁啦。

1.在tabula中打开 2-China_Factsheet_compressed.pdf文件。

2.框选site information 中的表格


2.JPG

3.点击 preview and export extract data 按钮

3.JPG

4.导出.csv 文件

5.在openrefine中打开 tabula-2-China_Factsheet_compressed (2)文件

6.编码选择 utf-8,Parse next 3 line(s) as column headers 将前三行组合作为列名,并创建项目


4.JPG

5.JPG

7.分析 city列 如chongqing有两个观测站的数据,但chongqing字段在两个观测值中间,无法使用edit cells - fill down 命令。

​ 观察数据在维度列(longitude)每个城市的所有观察值的维度相同,产生想法,根据维度列 新建一个城市列 提取数值,然后根据数值应用facet-text facet 批量更改城市名称。


6.JPG

8.点击longitude列,选择edit column - add columns based on this column,输入正则表达式 value.match(/(\d+)o\d*’E/)[0],新建列名字是city_new。


7.JPG

8.JPG

9.点击edit column- move column to beginning 将city_new列移到最前面,删除原来的city列

9.JPG

10.JPG

11.JPG

10.选择 city_new列 facet - text facet 在左边选择blank 3


12.JPG

13.JPG

14.JPG

[图片上传失败...(image-f6e176-1605105762721)]\14.JPG)

11.选择 all列 edit rows - remove matching rows


15.JPG

17.JPG

12.选择 city_new列 facet - text facet 在左边点edit将longitude值批量修改为城市名称


18.JPG

19.JPG

20.JPG

13.选经度、维度列 editcells -transform 正则表达式处理value.replace("o",".").replace('’N','').toNumber()
value.replace("o",".").replace('’E','').toNumber()


21.JPG

22.JPG

14.选择Altitude列,edit cells - transform 正则 value.toNumber(),修改观察值类型。

23.JPG

24.JPG
25.JPG

\PDF table extract(tabula+openrefine)\25.JPG)

15.选择export - comma-seprated value 保持csv文件


26.JPG
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在实际研究中,我们经常需要获取大量数据,而这些数据很大一部分以pdf表格的形式呈现,如公司年报、发行上市公告等。面...
    诸葛青云999阅读 15,054评论 0 16
  • MMQGIS Michael Minn (http://michaelminn.com) 9 August 201...
    榴莲气象阅读 1,199评论 0 0
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,699评论 1 180
  • 渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
    闷热当乘凉阅读 4,329评论 0 13
  • 感觉自己有点神经衰弱,总是觉得手机响了;屋外有人走过;每次妈妈不声不响的进房间突然跟我说话,我都会被吓得半死!一整...
    章鱼的拥抱阅读 2,204评论 4 5