1

在 Python 中使用 tabula 从 pdf 导入数据时,在某些情况下,我会获得合并为一列的两列或多列。从同一个 pdf 获得的所有文件都不会发生这种情况。

在这种情况下,这是用于读取 pdf 的代码:

from tabula import wrapper

tables = wrapper.read_pdf("933884 cco Saupa 1.pdf",multiple_tables=True,pages='all')

i=1

for table in tables:

    table.to_excel('output'+str(i)+'.xlsx',index=False)

    i=i+1

例如,当我打印从其中一个名为“output_pd”的 Excel 文件中获取的数据框的第一项时:

print (output_pd[0][1])

我得到:

76) 858000015903708 77) 858000013641969 78)

这五个数字在一个列中,所以我不能单独对待它们。在这些情况下是否可以改进数据处理?

4

2 回答 2

0

您可以尝试手动编辑excel中的数据。如果您在 excel 的数据选项卡下使用文本到列,它允许您将一列拆分为多列而无需太多工作,但您需要为每个 excel 文件执行此操作,这可能会很痛苦。

于 2019-04-25T03:08:45.147 回答
0

迭代使用表格获得的列表中每个数据框的每一列的每个项目

wrapper.read_pdf(file)

在这种情况下

tables

可以获得干净的数据。在这种情况下:

prueba =[]
i = 0
for table in tables:    
    for columna in table.columns:        
        for item in (str(table[columna]).split(" ")):            
            if "858" in str(item):
                prueba.append(item[0:15]) 
print (prueba[0:5])

导致:

['858000019596025', '858000015903707', '858000013641975', '858000000610864', '858000013428853']

tabula.wrapper.read_pdf

不阅读整个初始pdf。2 个值留在最后一页。因此,仍然需要手动进行一些编辑。

于 2019-04-25T11:00:20.830 回答