Tabula-Py 与列名称混淆

问题描述 投票:0回答:1

我有一个 pdf 文件,第一页顶部有一些文本,然后是表格。该表贯穿整个 pdf(共 156 页)。我想将此表提取到 csv 中。我已经从 Tabula Web 实用程序成功完成了此操作。在那里,输出符合我的预期(没有任何不适当的列、数据等)后,我下载了 csv 和脚本(.sh 文件)。打开脚本后,我找到了需要使用的面积值。我已经给出了与 python 脚本中的输入相同的内容,如下所示:

firstPage = [317.209, 7.066, 800.647, 589.422] # for the first page
areaList = [firstPage]
areaList.extend([[28.634, 8.553, 834.859, 584]] * 155) # *155 for remaining 155 pages
df = tabula.read_pdf(r'input_data/bank_trans.pdf', output_format='dataframe', pages='all',
                     area=areaList, multiple_tables=False, stream=True, guess=False, silent=True)

错误:

    raise CSVParseError(message, e)
tabula.errors.CSVParseError: Error failed to create DataFrame with different column tables.
Try to set `multiple_tables=True`or set `names` option for `pandas_options`. 
, caused by ParserError('Error tokenizing data. C error: Expected 5 fields in line 65087, saw 6\n')

我该如何去65087号线?我尝试检查 excel 文件中的 csv。它只有 6k 行。但是,错误提示我 ~65k 行。

python-3.x pdf tabula-py
1个回答
0
投票

我已经通过给出pdf中列的x坐标来解决这个问题。 例如:列= [1.0,3.0,7.0,9.2]

© www.soinside.com 2019 - 2024. All rights reserved.