当列表元素是需要解析的文本页面时,我如何将列表的每个元素存储在数据帧中



我有一个包含多个元素的列表。每个元素本质上都是一个页面,来自一个使用OCR和Tesseract转换为字符串的PDF文件。

我想把每一页分成几行,然后把所有这些都存储在一个数据帧中。我希望结束结构是"列是页面"one_answers"行是行">

我知道以下内容将占用一个页面,并将每一行存储在一个数据帧中。

page1 = pd.DataFrame(final_text[0].splitlines())

我还知道,我可以将页面作为最终文本,并使用以下方法将它们存储为数据帧中的列:

pages = pd.DataFrame(final_text).T

我的问题有两个方面:

  1. 如何编写一个for循环,该循环将对final_text中的所有元素执行上述两个操作?

  2. for循环需要考虑到每个元素或页面将导致不同数量的行。Pandas需要相同数量的行才能附加到数据帧。

我尝试了很多事情,但都没有成功,任何帮助或指导都将不胜感激。

主要沿着这些路线进行试验

for page in pages:
page.splitlines()

但这会拉取索引值,而不是实际元素。给出以下错误:

AttributeError:"int"对象没有属性"splitlines">

以下是我最终解决问题的方法。

# Determine the longest page value
page_length = []
for page in final_text:
page_length.append(len(page.split('n')))
page_length_max = max(page_length)
# Add blank lines to list entries so they equal the page with max length
updated_text = []
for page in final_text:
updated_text.append(page.split('n') + list(((page_length_max - len(page.split('n'))) * 'n')))
# Create a dataframe with each page a column and each row and line
data = pd.DataFrame()
for i, page in enumerate(updated_text):
data['page_%s' %str(i+1)] = page

最新更新