logo

Таблиця Python

Вступ

Як правило, необов’язково, щоб дані, які ми використовуємо, були доступними у форматі CSV або JSON. Дані можна зберігати у вигляді таблиці у файлі PDF. Як найпростіший випадок, ми можемо скопіювати та вставити таблицю в електронну таблицю або текстовий редактор. Але також може статися так, що ми можемо мати більше однієї таблиці в одному PDF-файлі зі схожою структурою. У таких випадках нам доводиться копіювати та вставляти кожну з цих таблиць окремо, що робить роботу виснажливою.

Однак, щоб скоротити цю нудну роботу, Python надає бібліотеку з відкритим кодом, також відому як таблиця-py , що дозволяє користувачам окремо витягувати більше ніж одну таблицю. У наступному підручнику ми дізнаємося про таблиці та їхні функції.

Що таке Табула?

Tabular — це базова оболонка tabula-java, яка дозволяє користувачам видобувати таблицю та перетворювати PDF-файл безпосередньо у фрейми даних або JSON за допомогою Мова програмування Python . Користувач також може видобувати таблиці з PDF і конвертувати їх у файли формату TSV, CSV або JSON.

Tabula — це інструмент, заснований на програмі графічного інтерфейсу користувача (GUI); однак, таблиця Java це інструмент на основі інтерфейсу користувача командного рядка (CUI). tabula-java забезпечує прив’язки Ruby, R і NodeJS, але не для Python. Таким чином, розробники представили концепцію таблиця-py який забезпечує прив’язку Python.

Тепер давайте розберемося, хто використовує Tabula і як ми можемо її встановити.

Хто користується Tabula?

Tabula — це потужний інструмент, який використовується новинними організаціями будь-якого розміру для створення потужних розслідувальних репортажів. Ці Новинні організації це The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Аргентина) і St. Paul (MN) Pioneer Press.

Існують масові організації, такі як SchoolCuts.org, які також залежать від Tabula, щоб перетворити незграбні документи на зручні для людей публічні ресурси.

Окрім вищезазначеного, є дослідники з інших професій, які використовують Tabula для перетворення своїх PDF-звітів на електронні таблиці Excel, CSV та файли у форматі JSON і використовують її для цілей аналізу та програм баз даних.

Реалізація Tabula в Python

Після того, як ми трохи обговорили Tabula, давайте розберемося з її реалізацією в Python.

Установка бібліотеки

найкрасивіша посмішка

Оскільки таблиця-py є бібліотекою Python з відкритим кодом, ми будемо використовувати піп інсталятор, щоб встановити бібліотеку.

 $ pip install tabula-py 

Імпорт бібліотеки

Після завершення встановлення ми можемо перевірити це, просто імпортувавши бібліотеку, як показано нижче:

 import tabula 

У випадку, якщо програма повертає an помилка імпорту , рекомендується перевстановити пакет.

The таблиця-py Бібліотека надає різні функції, такі як читання файлу PDF, читання таблиці на певній сторінці файлу PDF, читання кількох таблиць на одній сторінці файлу PDF або перетворення файлів PDF безпосередньо у файл CSV.

перетворення рядка в java

Почнемо з читання файлу PDF

Читання файлу PDF

The таблиця-py бібліотека дозволяє своїм користувачам читати PDF-файл за допомогою функції, відомої як read_pdf() функція.

Синтаксис:

 obj = tabula.read_pdf(filename, args[]) 

Параметри:

ім'я файлу: The ім'я файлу параметр - ім'я pdf-файлу; ми хотіли б прочитати дані.

Перетворимо наступну таблицю даних у форматі PDF у фрейм даних pandas.

Ім'я файлу: marksheet_table.py

Сторінка: 1

Ім'я англійська Фізика Хімія Біологія Всього
А 86 54 65 83 288
Б 56 Чотири 80 55 236
C 3. 4 66 73 90 263
Д 77 75 46 3. 4 232
І 74 82 55 77 288
Ф 69 76 82 46 273
Г 53 33 29 Чотири 160
Х 70 41 67 23 201
я 80 43 88 28 239
Дж 90 37 Чотири 71 243
К 98 55 88 81 322
Л 90 54 67 37 248
М 87 76 88 54 305
Н 86 69 82 66 303
О 67 74 54 65 260
П 75 96 53 67 291
Q Чотири 87 80 Чотири 257
Р 44 66 49 78 237
С 78 39 78 80 275
Т 56 54 76 86 273
IN 43 90 64 77 274
IN 95 88 66 55 304
IN 64 67 86 80 297
X 82 56 Чотири 65 248
І 79 65 70 54 268
З 83 54 40 75 252

Нижче наведено приклад, який демонструє, як отримати дані з pdf.

приклад:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 1) # printing the table print(mytable[0]) 

Вихід:

 Name English Physics Chemistry Biology Total 0 A 86 54 65 83 288 1 B 56 45 80 55 236 2 C 34 66 73 90 263 3 D 77 75 46 34 232 4 E 74 82 55 77 288 5 F 69 76 82 46 273 6 G 53 33 29 45 160 7 H 70 41 67 23 201 8 I 80 43 88 28 239 9 J 90 37 45 71 243 10 K 98 55 88 81 322 11 L 90 54 67 37 248 12 M 87 76 88 54 305 13 N 86 69 82 66 303 14 O 67 74 54 65 260 15 P 75 96 53 67 291 16 Q 45 87 80 45 257 17 R 44 66 49 78 237 18 S 78 39 78 80 275 19 T 56 54 77 86 273 20 U 43 90 64 77 274 21 V 95 88 66 55 304 22 W 64 67 86 80 297 23 X 82 56 45 65 248 24 Y 79 65 70 54 268 25 Z 83 54 40 75 252 

Пояснення:

перенесення слів css

У наведеному вище прикладі ми імпортували необхідну бібліотеку та визначили змінну, яка зберігає адресу файлу даних PDF. Потім ми використали read_pdf() функція для читання даних із pdf-файлу та друку їх для користувачів. У результаті таблицю даних було успішно прочитано.

Примітка: ми використовували сторінки у функції read_pdf(), щоб прочитати дані з указаної сторінки.

Розглянемо інший приклад друку таблиць із певної сторінки, скажімо, сторінки номер 2.

приклад:

масив байтів у рядок
 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2) # printing the table print(mytable[0]) 

Вихід:

 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 

Пояснення:

У наведеному вище прикладі ми дотримувалися тієї ж процедури, що й раніше. Проте ми призначили сторінки параметр до 2 і надрукував першу таблицю вказаної сторінки. У результаті таблиця нульового індексу на сторінці 2 була успішно надрукована.

Тепер давайте зрозуміємо, що відбувається, коли на одній сторінці PDF-файлу даних є більше ніж одна таблиця.

Обробка кількох таблиць на одній сторінці PDF-файлу

Ми можемо працювати з більш ніж однією таблицею в одній таблиці, використовуючи додатковий параметр, відомий як кілька_таблиць. The кілька_таблиць параметр приймає логічне значення, для якого read_pdf() функція читає кілька таблиць як незалежні таблиці, якщо значення true, або читає кілька таблиць як одну таблицю, якщо значення false.

Давайте розглянемо наступний приклад, який демонструє, як читати кілька таблиць як незалежних таблиць.

приклад:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2, multiple_tables = True) # printing the table print(mytable[0]) print(mytable[1]) 

Вихід:

 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 Name Position 0 K I 1 M II 2 V III 3 N IV 4 W V 

Пояснення:

У наступному прикладі ми знову імпортували необхідну бібліотеку та визначили змінну, яка зберігає адресу PDF-файлу. Потім ми використали read_pdf() функції та включені кілька_таблиць налаштування параметра Правда . Потім ми окремо надрукували декілька таблиць, присутні на сторінці 2 PDF-файлу.

Тепер давайте розглянемо приклад, щоб зрозуміти, як читати кілька таблиць як одну.

приклад:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2, multiple_tables = False) # printing the table print(mytable[0]) 

Вихід:

java кінець
 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 26 Name Position 27 K I 28 M II 29 V III 30 N IV 31 W V 

Пояснення:

У наступному прикладі ми встановили кілька_таблиць параметр до помилковий . У результаті таблиці, представлені на сторінці 2, розглядаються як одна таблиця.

Перетворення файлу PDF безпосередньо у файл CSV

Ми можемо конвертувати файл PDF, який містить табличні дані, безпосередньо у файл CSV за допомогою convert_in() метод в табличка бібліотека.

Синтаксис:

 tabula.convert_into('filename.pdf', 'newfilename.csv', args[]) 

Розглянемо наступний приклад, який ілюструє перетворення файлу PDF у файл CSV.

приклад:

 # importing the library import tabula # address of the file myfile = 'marksheettable.pdf' # using the read_pdf() function tabula.convert_into(myfile, 'marksheet.csv') print('The PDF file has been converted successfully.') 

Вихід:

 'pages' argument isn't specified.Will extract only from page 1 by default. The PDF file has been converted successfully. 

Пояснення:

У наведеному вище прикладі ми знову імпортували необхідну бібліотеку та визначили змінну, що містить адресу PDF-файлу. Потім ми використали convert_in() перетворити файл PDF у файл CSV і надрукувати повідомлення про успішне виконання.

Крім того, ми можемо помітити, що програма повернула заяву про те, що 'сторінки' аргумент не вказано. Таким чином, таблицю, представлену на сторінці 1, буде витягнуто за замовчуванням.