logo

Table 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.

Инсталиране на библиотеката

генератор на случайни стойности в java

От маса-py е библиотека с отворен код на Python, ние ще използваме пип инсталатор, за да инсталирате библиотеката.

 $ pip install tabula-py 

Импортиране на библиотеката

След като инсталацията приключи, можем да я проверим, като просто импортираме библиотеката, както е показано по-долу:

 import tabula 

В случай, че програмата върне an грешка при импортиране , препоръчително е да преинсталирате пакета.

The маса-py библиотеката предоставя различни функции като четене на PDF файл, четене на таблица на конкретна страница от PDF файл, четене на множество таблици на една и съща страница от PDF файл или директно конвертиране на PDF файлове в CSV файл.

mysql уникален ключ

Нека започнем с четене на 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
° С 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
T 56 54 76 86 273
IN 43 90 64 77 274
IN 95 88 66 55 304
IN 64 67 86 80 297
х 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 

Обяснение:

обективна java

В горния пример ние импортирахме необходимата библиотека и дефинирахме променлива, която съхранява адреса на pdf файла с данни. След това използвахме read_pdf() функция за четене на данните от pdf и отпечатването им за потребителите. В резултат на това таблицата с данни е прочетена успешно.

Забележка: Ние сме използвали страници параметър във функцията read_pdf() за четене на данните от посочените страници.

Нека разгледаме друг пример за отпечатване на таблиците от конкретна страница, да речем страница номер 2.

Пример:

java system.out.println
 # 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() функцията чете множество таблици като независими таблици, ако е истина или чете множество таблици като една таблица, ако е невярно.

Нека разгледаме следния пример, демонстриращ как да четем множество таблици като независими таблици.

Пример:

 # 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 файл с помощта на конвертирате в() метод в табла библиотека.

Синтаксис:

 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 файла. След това използвахме конвертирате в() метод за конвертиране на PDF файла в CSV файл и отпечатване на съобщение за успех.

Освен това можем да забележим, че програмата върна изявление, в което се казва, че 'страници' аргументът не е посочен. По този начин таблицата, присъстваща на страница 1, ще бъде извлечена по подразбиране.