您的位置 首页 基金债券

从PDF文件提取表格到Excel就这么简单!

从PDF文件提取表格到Excel就这么简单!netkiller:从PDF文件提取表格到Excel就这么简单!​…

从PDF文件提取表格到Excel就这么简单!netkiller:从PDF文件提取表格到Excel就这么简单!​

netkiller:如何快速高效的学习Python语言?

netkiller:办公室「文职白领」学什么编程语言?

第 14 章 文件处理

PDF 文件处理

PDF(Portable Document Format的简称,意为“可携带文档格式”),是由Adobe Systems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。

可移植文档格式是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件在开始使用PDF格式文件。

Adobe公司设计PDF文件格式的目的,是跨平台支持多媒体集成信息的出版和发布,尤其是提供对网络信息发布的支持。为了达到此目的, PDF具有许多其他电子文档格式无法相比的优点。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。

开放式基金每日净值_基金每日净值_每日基金净值

安装 pdfplumber

neo@MacBook-Pro-Neo ~/workspace/python % pip install pdfplumber

查看 pdfplumber 是否安装成功

neo@MacBook-Pro-Neo ~/workspace/python % pip show pdfplumber
Name: pdfplumber
Version: 0.5.26
Summary: Plumb a PDF for detailed information about each char, rectangle, and line.
Home-page: https://github.com/jsvine/pdfplumber
Author: Jeremy Singer-Vine
Author-email: jsvine@gmail.com
License: UNKNOWN
Location: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
Requires: pdfminer.six, Pillow, Wand
Required-by:   

获取PDF文档信息

import os,pdfplumber
import pandas as pd
file = os.path.expanduser("~/tmp/每日开放式基金净值表.pdf")
with pdfplumber.open(file) as pdf:
 print(pdf.metadata)  

输出结果

{'Producer': 'macOS 版本11.2.1(版号20D74) Quartz PDFContext', 'CreationDate': "D:20210227145013Z00'00'", 'ModDate': "D:20210227145013Z00'00'"}  

每日基金净值_基金每日净值_开放式基金每日净值

获取PDF总页数

import os,pdfplumber
import pandas as pd
file = os.path.expanduser("~/tmp/每日开放式基金净值表.pdf")
with pdfplumber.open(file) as pdf:
 print(len(pdf.pages)) 

查看PDF页面信息

import os,pdfplumber
import pandas as pd
file = os.path.expanduser("~/tmp/每日开放式基金净值表.pdf")
with pdfplumber.open(file) as pdf:
 first_page = pdf.pages[0]
 
 # 查看当前页码
 print('页码:',first_page.page_number)
 # 查看当前页宽
 print('页宽:',first_page.width)
 # 查看当前页高
 print('页高:',first_page.height) 

输出结果

neo@MacBook-Pro-Neo ~/workspace/python % python3 pdf.py
页码: 1
页宽: 1324
页高: 7638

提取文本内容

PDF样本文件

开放式基金每日净值_每日基金净值_基金每日净值

萃取程序

import os,pdfplumber
import pandas as pd
file = os.path.expanduser("~/tmp/每日开放式基金净值表.pdf")
with pdfplumber.open(file) as pdf:
 first_page = pdf.pages[0]
 
 # 读取文本
 text = first_page.extract_text()
 print(text) 

输出结果

neo@MacBook-Pro-Neo ~/workspace/python % python3 pdf.py
⾸页   ENGLISH   RSS订阅   统计微博|统计微讯|移动客户端 2021年2⽉27⽇ 星期六
检索 | ⾼级
热词: GDP  CPI  PPI  PMI  总⼈⼜  社会消费品零售总额
国家统计局 最新发布 统计动态 统计百科 微观数据申请 公开指南
派驻纪检组 数据查询 通知公告 统计词典 曝光台 公开规定
机构职能 数据解读 图⽚新闻 常见问题解答 ⾏政处罚信息 公开⽬录
当前位置 > ⾸页 > 统计数据 > 最新发布
第第四四次次全全国国经经济济普普查查公公报报((第第七七号号))
来源:国家统计局 发布时间:2019-11-20 10:00 关闭窗⼝ 打印本⻚
第四次全国经济普查公报(第七号)
——分区域单位和从业⼈员情况
 
国家统计局
国务院第四次全国经济普查领导⼩组办公室
 
2019年11⽉20⽇
 
  根据第四次全国经济普查结果,现将我国分区域的单位和从业⼈员基本情况公布如下:
 
  ⼀、单位基本情况
 
  2018年末,东部地区拥有法⼈单位1280.2万个,占58.8%,⽐2013年末下降了0.5个百分点;中部地区492.9万个,占22.6%,提
⾼了0.1个百分点;西部地区405.8万个,占18.6%,提⾼了0.4个百分点。东部地区拥有产业活动单位1408.3万个,占57.4%;中部地
区568.4万个,占23.2%;西部地区478.3万个,占19.5%。
 
  在第⼆产业和第三产业法⼈单位中,位居前三位的地区是:⼴东省312.7万个,占14.3%;江苏省205.4万个,占9.4%;⼭东
省180.1万个,占8.3%。
 
  按地区分组的单位情况详见表7-1。

提取pdf中的表格数据

PDF文件内容如下

开放式基金每日净值_每日基金净值_基金每日净值

数据萃取程序

import os,pdfplumber
import pandas as pd
file = os.path.expanduser("~/tmp/每日开放式基金净值表.pdf")
with pdfplumber.open(file) as pdf:
 first_page = pdf.pages[0]
 table = first_page.extract_table()
 print(table) 

table 中是一行一行的数据

import os,pdfplumber
import pandas as pd
file = os.path.expanduser("~/tmp/每日开放式基金净值表.pdf")
with pdfplumber.open(file) as pdf:
    first_page = pdf.pages[0]
    table = first_page.extract_table()
    # print(table)
    for t in table:
        print(t)

输出结果如下

neo@MacBook-Pro-Neo ~/workspace/python % python3 pdf.py
['关注', '⽐较', '序号', '基⾦代码', '基⾦简称', '2021-02-26', None, '2021-02-25', None, '⽇增长值', '⽇增长率', '申购状态', '赎回状态', '⼿续费']
[None, None, None, None, None, '单位净值', '累计净值', '单位净值', '累计净值', None, None, None, None, None]
['', '', '1', '501030', '汇添富中证环境治理指数A 估值图 基⾦吧', '0.5501', '0.5501', '0.5421', '0.5421', '0.0080', '1.48%', '开放', '开放', '0.12%']
['', '', '2', '501031', '汇添富中证环境治理指数C 估值图 基⾦吧', '0.5471', '0.5471', '0.5392', '0.5392', '0.0079', '1.47%', '开放', '开放', '0.00%']
['', '', '3', '164908', '交银中证环境治理(LOF) 估值图 基⾦吧', '0.4890', '0.4890', '0.4820', '0.4820', '0.0070', '1.45%', '开放', '开放', '0.12%']
['', '', '4', '004005', '东⽅民丰回报赢安混合A 估值图 基⾦吧', '1.0564', '1.0709', '1.0438', '1.0583', '0.0126', '1.21%', '开放', '开放', '0.06%']
['', '', '5', '004006', '东⽅民丰回报赢安混合C 估值图 基⾦吧', '1.0463', '1.0593', '1.0338', '1.0468', '0.0125', '1.21%', '开放', '开放', '0.00%']
['', '', '6', '003359', '⼤成360互联⽹+⼤数据100C 估值图 基⾦吧', '1.2160', '1.2160', '1.2060', '1.2060', '0.0100', '0.83%', '开放', '开放', '0.00%']
['', '', '7', '002236', '⼤成360互联⽹+⼤数据100A 估值图 基⾦吧', '1.2450', '1.2450', '1.2350', '1.2350', '0.0100', '0.81%', '开放', '开放', '0.12%']
['', '', '8', '004685', '⾦元顺安元启灵活配置混合 估值图 基⾦吧', '1.8064', '1.8064', '1.8023', '1.8023', '0.0041', '0.23%', '开放', '开放', '0.15%']
['', '', '9', '970008', '华安证券汇赢增利⼀年持有混合C 估值图 基⾦吧', '1.0241', '1.0241', '1.0222', '1.0222', '0.0019', '0.19%', '开放', '暂停', '0.15%']
['', '', '10', '110036', '易⽅达双债增强债券C 估值图 基⾦吧', '1.6250', '1.7750', '1.6220', '1.7720', '0.0030', '0.18%', '开放', '开放', '0.00%']
['', '', '11', '970007', '华安证券汇赢增利⼀年持有混合B 估值图 基⾦吧', '1.0191', '1.0191', '1.0173', '1.0173', '0.0018', '0.18%', '开放', '暂停', '0.00%']
['', '', '12', '970006', '华安证券汇赢增利⼀年持有混合A 估值图 基⾦吧', '0.9643', '1.2003', '0.9626', '1.1986', '0.0017', '0.18%', '封闭期', '封闭期', '---']
['', '', '13', '008827', '建信易盛郑商所能源化⼯期货ET... 估值图 基⾦吧', '1.1550', '1.1550', '1.1534', '1.1534', '0.0016', '0.14%', '开放', '开放', '0.15%']
['', '', '14', '008828', '建信易盛郑商所能源化⼯期货ET... 估值图 基⾦吧', '1.1533', '1.1533', '1.1517', '1.1517', '0.0016', '0.14%', '开放', '开放', '0.00%']
['', '', '15', '007817', '国泰中证全指通信设备ETF联接A 估值图 基⾦吧', '0.9943', '0.9943', '0.9930', '0.9930', '0.0013', '0.13%', '开放', '开放', '0.10%']
['', '', '16', '110035', '易⽅达双债增强债券A 估值图 基⾦吧', '1.6840', '1.8340', '1.6820', '1.8320', '0.0020', '0.12%', '开放', '开放', '0.08%']

保存数据到 Excel

安装依赖包 openpyxl 否则会提示让你安装。

neo@MacBook-Pro-Neo ~/workspace/python % pip install openpyxl

import os,pdfplumber
import pandas as pd
file = os.path.expanduser("~/tmp/每日开放式基金净值表.pdf")
# 读取pdf文件,保存为excel
with pdfplumber.open(file) as pdf:
 first_page = pdf.pages[0]
 # 自动读取表格信息,返回列表
 table = first_page.extract_table()
 # print(table)
 save = pd.DataFrame(table[2:],columns=table[0])
 # 保存excel
 save.to_excel('output.xlsx') 

输出结果如下

netkiller:Python 如何实现守护进程?​

本文来自网络,不代表伊好股票网立场,转载请注明出处:https://www.yhaow.com/jjzq/89.html

作者: 伊好股票网

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部