python - 当列表元素是需要解析的文本页面时,如何将列表的每个元素存储在数据框中?
问题描述
我有一个包含几个元素的列表。每个元素本质上都是使用 OCR 和 Tesseract 将抓取的 PDF 文件转换为字符串的页面。
我想将每一页分成几行,然后将所有这些存储在一个数据框中。我希望最终结构是“列是页面”和“行是行”。
我知道以下内容将占用一页并将每一行存储在数据框中。
page1 = pd.DataFrame(final_text[0].splitlines())
我也知道我可以使用以下内容将页面保存为最终文本并将它们作为列存储在数据框中:
pages = pd.DataFrame(final_text).T
我的问题有两个:
如何编写一个 for 循环来对 final_text 中的所有元素执行上述两项操作?
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
推荐阅读
- azure - Azure BLOB 存储 - 许多事务
- racket - 具有自动类型字段转换的列表到结构转换
- javascript - 如何遍历数组
- java - 应用程序停止后出现“BindException:地址已在使用中”
- javascript - TypeError: exits.success 不是函数
- android - 来自视图寻呼机共享元素的图像视图错误退出过渡
- entity-framework - 使用 Queryable.ProjectTo 是一个好习惯
在存储库方法中,是否有更优化的 sql 查询? - mongodb - $exists 不适用于 MongoDb 聚合中的 $match 阶段
- javascript - PHP/AJAX 在提交后显示每次信息
- javascript - 所有带有类的按钮的 CSS 选择器