我有一个数据框,如下所示,它有500+行,我只显示了一个示例。URL栏包含web上PDF的链接。我想打开每个pdf并将pdf的内容复制到新的列PDF data中。我知道一些PDF文件可能会很长,在某些情况下,该列中的文本数量可能会很大。
例如,在第一行中,我希望将URL 'https://www.occ.gov/static/enforcement-actions/ea2018-001.pdf‘的内容复制到列PDF data中。
对于第二行,PDF data将为空。
在第三行中,PDF data将包含PDF ''https://www.occ.gov/static/enforcement-actions/ea2017-104.pdf'‘的内容。
我偶然发现了这个处理PDFs的URL,但它需要将所有的pdfs下载到一个文件夹中,并且它的输出是一个包含txt文件的文件夹。但我希望将pdf的内容放入一列数据中。此外,我有500+行,我不能一次下载一个pdf。
import pandas as pd
import numpy as np
sales = [{'account': 'credit cards', 'Jan': '150 jones', 'Feb': '200 .jones', 'URL': 'https://www.occ.gov/static/enforcement-actions/ea2018-001.pdf'},
{'account': '1', 'Jan': 'Jones', 'Feb': '210', 'URL': ''},
{'account': '1', 'Jan': '50', 'Feb': '90', 'URL': 'https://www.occ.gov/static/enforcement-actions/ea2017-104.pdf' }]
df = pd.DataFrame(sales)发布于 2018-02-13 03:40:33
我不知道有什么好方法可以在不先下载的情况下从pdf中提取文本,然后发现this answer也有类似的内容。但是,如果使用requests下载文件,则可以使用任意数量的工具来提取文本。例如,PyMuPDF使得将pdf的文本提取为一个长字符串(docs here)变得非常容易。
为了真正将提取的文本添加到dataframe中的新列,您可以这样做:
def pdf_text_extractor(url):
# code to download pdf
# code to extract text from pdf
return pdf_text
df.assign(pdf_text = df['URL'].apply(pdf_text_extractor))https://stackoverflow.com/questions/48753751
复制相似问题