python - 当列表元素是需要解析的文本页时,如何将列表的每个元素存储在数据框中?

标签 python list for-loop dataframe split

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

我想将每个页面分成几行,然后将所有这些存储在数据框中。我希望最终结构是“列是页”和“行是行”。

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

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()

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

属性错误:'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

关于python - 当列表元素是需要解析的文本页时,如何将列表的每个元素存储在数据框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51502615/

相关文章:

python - 加速 python 循环

python - 如何强制删除python对象?

python - Python 中的正则表达式搜索和替换子字符串

python - 未定义 DISPLAY 时使用 matplotlib 生成 PNG

java - 数组不会通过 for 循环到达下一个位置

Python - itertools.product() 内的 for 循环

python - 如何在 python 中使对象可变?

c++ - push_back 上的 STL 列表段错误

python - 如何删除字典中的键值?

python - 如何将字典列表转换为元组列表?