问题标签 [tabula-py]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
497 浏览

python - 如何在 python 中使用制表符阅读 PDF 时删除“Nan”值?

我正在使用 tabula-py 在 python 中读取我的课程时间表 PDF 文件,返回值“数据”有很多我似乎无法清理的“南”值。有人可以提出解决方案吗?我应该使用一些东西而不是 tabula-py 吗? 我已附上 PDF 图片的链接。为了隐私,我已经从 PDF 中编辑了一些信息。1

我的代码如下:

我的输出如下:

另外,什么是'。. 。意思是?

0 投票
0 回答
82 浏览

python-3.x - 使用 Python 提取 PDF 表

我的任务是从 PDF 中提取表格,然后从表格中读取数据。我曾尝试使用 tabula 和 panda 库,但我得到一个空值这里是代码: import tabula as tb import pandas as pd

file_path = "SDII006756_2_Amlodipine_besilate_Valsartan_Hydrochlorothiazide___intermediate_product__Balkanpharma_Dupnitsa_AD.pdf" table = tb.read_pdf(file_path)

Convert_csvFile = tb.convert_into(file_path,'pdfconvert.csv') df = pd.concat(table)

excel_convertinto = df.to_excel('pdfconvert.xlsx')

它抛出的错误如下:

'pages' 参数未指定。默认情况下仅从第 1 页提取。'pages' 参数未指定。默认情况下仅从第 1 页提取。回溯(最后一次调用):文件“C:\Users\vdash\source\repos\MyWorkOnPython\pdfextraction.py”,第 8 行,在 df = pd.concat(table) 文件“C:\Users\vdash\AppData \Local\Programs\Python\Python39\lib\site-packages\pandas\core\reshape\concat.py",第 285 行,在 concat op = _Concatenator( 文件 "C:\Users\vdash\AppData\Local\Programs\ Python\Python39\lib\site-packages\pandas\core\reshape\concat.py",第 342 行,在init中 引发 ValueError("No objects to concatenate") ValueError: No objects to concatenate

为什么即使pdf包含表格,它也说没有对象。

0 投票
0 回答
37 浏览

java - 在没有 JRE 的情况下安装 tabula-py

我在没有先安装 JRE 的情况下安装了 tabula-py ...我后来安装了 JRE

能够使用 tabula-py 有什么不同吗?或者我应该卸载 tabula-py 并重新安装它?

0 投票
0 回答
231 浏览

python - Tabula Python 包:使用单行读取 pdf

使用 python 的 tabula 包,我试图从多个 pdf 文件中提取表。这对于多行表格非常有效,但是,一些 pdf 文件的表格只有一行。尝试转换这些 pdf 时,它返回一个空列表。这些文件存在问题是有道理的,因为单行表本质上只是另一行文本。

但是,重要的是这些 pdf 也被转换为 DataFrame,因为它们在我的数据集中出现得相当频繁。不幸的是,pdf文件是专有的,所以我不能在这里展示它们。我希望这个限制不会阻止找到解决方案。下面是进行转换的代码行。

我试图以几种方式解决这个问题。首先,我尝试在源代码的原始 pdf 文件中插入额外的一行,不幸的是,这是不可能的。我尝试使用 tabula-py 网站上的提示(https://tabula-py.readthedocs.io/en/latest/faq.html#i-got-a-empty-dataframe-how-can-i-resolve-它):

  1. 设置特定区域以进行准确的表格检测。
  2. 为具有显式行的表尝试 lattice = True 选项。
  3. 尝试流 = True 选项

按照第一个提示,我尝试使用在 Adob​​e 中进行的测量来指定一个区域。这仍然返回一个空的 DataFrame。我尝试了第二个和第三个提示,这又返回了一个空列表。

所以我的问题是:“有没有办法让 tabula-py 包识别 pdf 中只有一行的表?”

我希望有人知道如何解决这个问题。提前感谢您的努力。

0 投票
1 回答
102 浏览

python - 在 Pandas DataFrame 中为给定索引值组合连续行

我正在使用 tabula-py 从 PDF 中提取表格。但是在一些行多于一行的表中,但是在tabula-py中,单表行在DataFrame中被转换为多行。我在这里给出一个样本。

如果您查看示例,您将看到 9、10 和 11 索引中的行实际上是单行。表格中有多行(pdf格式)。该表有 100 多行,并且至少有 12 个地方发生了这些问题。有些地方是连续 2 行,有些地方是连续 3 行。我们如何将这些行与索引值合并?

0 投票
1 回答
146 浏览

python - 我在 for 循环中使用 Tabulas;收到此错误:IndexError: list index out of range

我正在使用 for 循环来处理整个 pdf 文件夹,这些文件夹被转换为 csv 文件。

这是我的日志:

该代码似乎运行文件夹中 63 个文件中的两个,然后由于此错误而结束。感谢您的帮助!

0 投票
1 回答
737 浏览

python - Tabula-py read_pdf_with_template() 方法

我正在尝试将文档的特定部分作为表格读取。它的结构是一个表格,但在单元格、行或列之间没有分界线。

我成功地使用了read_pdf()带有areaandcolumn参数的方法。我可以准确地指定表格的开始和结束位置以及列的划分位置。

但是我的 pdf 在每个页面上都有多个不同大小的表格,没有明确的标记来识别它们,我必须使用这些参数。

我在这里read_pdf_with_template()的 Github repo 问题中找到了该方法,并在文档拉取请求示例笔记本中找到了更多关于它的信息。

但是没有任何地方提到如何构建teamplate.json以及我可以使用哪些参数或它们的含义。

我尝试将area坐标插入到x1, y1, x2, y2,在方法参数中传递列列表,并heightwidth表的大小中传递参数。

但它正在拾取 pdf 的顶部中心部分,这不等于我在反向计算所有内容时插入的任何坐标。

这是我要阅读的页面(我删除了一些敏感数据) 在此处输入图像描述

这是代码片段

0 投票
0 回答
39 浏览

python-3.x - 从 pdf 生成的表中提取数据 (Tabula)

我正在尝试转换 pdf 文件并将其保存到 Django 模型字段。到目前为止,我能够将文件转换为 CSV 数据框,我能够读取标题和数据。但是,我遇到了一个小障碍,因为该表有 1 行包含大量数据,并且标题已过时,因此它们会随着时间而变化。

这是pdf中表格的片段: 在此处输入图像描述

这是我到目前为止所做的:

我想做的就是将列与其相应的数据匹配以将其用作 JSON。

0 投票
0 回答
27 浏览

python - 无法使用 tabula-py 读取 pdf

我正在尝试使用解析pdf,tabula-py但我不断收到此错误堆栈-

这是代码 -

当我尝试通过命令行解析pdf时,它可以工作

我的Pipfile长相是这样的

请问可能是什么问题?

0 投票
0 回答
38 浏览

python - Tabula-py:仅将 1/45 页面转换为 .csv 文件

我目前在 jupyter 笔记本上使用制表符将 45 页的 .pdf 文件转换为 .csv 文件。pdf 中的每一页都有一个类似的数据表,但是由于某种原因,我的代码仅在生成的 .csv 文件中输出第 33 页的数据。