pandas 从非结构化PDF中提取数据

inkz8wg9  于 2023-08-01  发布在  其他
关注(0)|答案(2)|浏览(131)

我正在尝试从非结构化PDF here中提取数据
我试图提取起始信息(船类和起始时间),但是像tabula这样的包不起作用,因为数据不在结构化框中。
希望将PDF中的信息移动到pandas数据框架中。我正在使用的代码如下:

source = 'https://d3fpn4c9813ycf.cloudfront.net/pdfDocuments/WCH_2022_1/WCH_2022_1_ROWMSCULL1-L----------HEAT000100--_C77X5402.PDF'
pandas_options={'header': None}

data = tb.read_pdf(source, pages = 'all', pandas_options={'header': None})
data = data[0]
data = pd.DataFrame(data)
headers = data.iloc[0]

字符串
任何帮助都非常感谢!

liwlm1x9

liwlm1x91#

我尝试使用PDFTables API,数据看起来结构化,但需要修复头,数字数据看起来很好,你只需要编辑数据框,所以它从索引5开始
以下是完整的笔记本:link

  • 注意**:使用自己的API Key:)
iklwldmw

iklwldmw2#

如果标题总是相同的,它看起来就像每个表之前的4行文本。
下面是一种使用pdfplumber.的可能方法

import pdfplumber
import pandas as pd
from   collections import deque

pdf = pdfplumber.open(...)

for page in pdf.pages:
    lines = page.extract_text_lines()
    last_4_lines = deque(maxlen=4)
    for table in page.find_tables():
        for line in lines:
            if line['bottom'] > table.bbox[1]:
                break
            last_4_lines.append(line['text'])
        print(last_4_lines)
        print(pd.DataFrame(table.extract()))

个字符

相关问题