Неправильное чтение pdf файла python
Пишу код, который читает pdf файл и переводит его в DataFrame.
table = tabula.read_pdf(pdf_schedule, pages='all', multiple_tables=True, lattice=True)
Проблема в том, что в файле, который я передаю, иногда у первого элемента слева нет стороны, из-за чего в table там вместо данных этой ячейки NaN. Что делать?
вот весь код
columns = table[0].columns
# Создание списка строк
rows_list = []
for t in table:
for _, row in t.iterrows():
rows_list.append(row)
# Создание DataFrame из списка строк с явным указанием столбцов
df = pd.DataFrame(rows_list, columns=columns)
вот скрин примера неправильного первого элемента строки таблицы
Ответы (1 шт):
Используя tabula я не смог добиться достойного воспроизведения вашей таблицы, из предыдущего уже удаленного вопроса. Но с легкостью она прочиталась с помощью PyMuPDF. В прошлом году они добавили средства распознавания и извлечения таблиц. Об этом можно почитать здесь. Сначала, конечно, pip install pymupdf.
import fitz # import package PyMuPDF
doc = fitz.open("table.pdf")
page_1 = doc[0] # this is the first page
tab = page_1.find_tables()[0]
df = tab.to_pandas()
print(df.to_string())
--------------------------------
Преподаватели 1 пара\n08:30-10:00 2 пара\n1 0 :10-11:40 3 п а ра\n1 2 :20-13:50 4 п а р а\n14:00-15:30 5 п а р а\n15:50-17:20 6 п а р а\n17:30-19:00 7 п ара\n19:10-20:40
0 Абз****** Ришат ********** 3ИСИП-621\n3ИСИП-821 3ИСИП-621\n3ИСИП-821 3 ИСИП-621\n3ИСИП-821 3ИСИП-821
1 ауд. 102 102 102 102
2 Аз****** Вера ************ 2ОИБАС-1022 1ИСИП-923 1ИСИП-1023
3 ауд. 202а кл. час / акт зал. 202а 202а
4 Ак**** Владимир ********** 1ОИБАС-1323 1ОИБАС-1423 1ИСИП-523 1ИСИП-623
5 ауд. 308 308 308 308
.............................
.............................
75 ауд. ДОТ ДОТ ДОТ ДОТ ДОТ ДОТ
76 Ра******* Наталья ************ 1ИСИП-323 1ИСИП-523 1ИСИП-523 1ИСИП-923 1ОИБАС-1223
Со второй страницей, я думаю, вы справитесь самостоятельно. Фамилии спрятал, чтоб никого не смущать.
