Проблема при импорте таблицы из PDF в Python с использованием Tabula - PullRequest
0 голосов
/ 25 апреля 2019

При импорте данных из pdf с использованием tabula с Python в некоторых случаях я получаю два или более столбцов, объединенных в один.Это не происходит со всеми файлами, полученными из одного и того же 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

ДляНапример, когда я печатаю первый элемент кадра данных, полученный из одного из этих файлов Excel, с именем «output_pd»:

print (output_pd[0][1])

, я получаю:

76) 858000015903708 77) 858000013641969 78)

Пять чисел находятся в одном столбце, поэтому я не могу рассматривать их по отдельности.Можно ли улучшить обработку данных в этих случаях?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

Итерации в каждом элементе каждого столбца каждого кадра данных в списке, полученном с помощью таблицы

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 значения остались на последней странице.Таким образом, все еще необходимо вручную внести небольшое изменение.

0 голосов
/ 25 апреля 2019

Вы можете попробовать вручную редактировать данные в Excel.Если вы используете текст для столбцов на вкладке данных в Excel, это позволяет разбить один столбец на несколько столбцов без особой работы, но вам придется делать это для каждого файла Excel, что может быть затруднительно.

...