logo

Table Python

O introducere

În general, nu este necesar ca datele pe care le folosim să fie disponibile în format CSV sau JSON. Datele pot fi stocate sub forma unui tabel într-un fișier PDF. Ca cel mai simplu caz, putem copia și lipi tabelul într-o foaie de calcul sau într-un editor de text. Dar se poate, de asemenea, să putem mai mult de un tabel în același PDF care are structuri similare. Pentru astfel de cazuri, trebuie să copiem și să lipim fiecare dintre aceste tabele separat, ceea ce face munca plictisitoare.

Cu toate acestea, pentru a reduce această muncă tristă, Python oferă o bibliotecă open-source, cunoscută și ca table-py , care permite utilizatorilor să extragă mai mult de un tabel distinct. În următorul tutorial, vom afla despre tabula și funcțiile lor.

Ce este Tabula?

Tabular este un pachet de bază de tabula-java care permite utilizatorilor să extragă tabelul și să convertească fișierul PDF direct în cadre de date sau JSON folosind Limbajul de programare Python . De asemenea, utilizatorul poate extrage tabele din PDF și le poate converti în fișiere în format TSV, CSV sau JSON.

Tabula este un instrument bazat pe aplicația Graphical User Interface (GUI); in orice caz, table-java este un instrument bazat pe Command-Line User Interface (CUI). tabula-java oferă legăturile lui Ruby, R și NodeJS, dar nu și pentru Python. Astfel, dezvoltatorii au introdus conceptul de table-py care asigură legarea Python.

Acum, să înțelegem cine folosește Tabula și cum îl putem instala.

Cine folosește Tabula?

Tabula este un instrument puternic care este folosit de organizațiile de știri de toate dimensiunile pentru a alimenta raportarea investigațiilor. Aceste Organizații de știri sunt The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Argentina) și St. Paul (MN) Pioneer Press.

șir subșir java

Există organizații de bază, cum ar fi SchoolCuts.org, care depind, de asemenea, de Tabula pentru a transforma documentele greoaie în resurse publice prietenoase cu oamenii.

În afară de cele de mai sus, există cercetători din alte medii care utilizează Tabula pentru a-și transforma rapoartele PDF în foi de calcul Excel, CSV și fișiere în format JSON și îl folosesc în scopul analizei și al aplicațiilor de baze de date.

Implementarea Tabula în Python

După ce am discutat puțin despre Tabula, să înțelegem implementarea sa în Python.

Instalarea bibliotecii

De cand table-py este o bibliotecă open-source de Python, vom folosi pip instalator pentru a instala biblioteca.

 $ pip install tabula-py 

Importul bibliotecii

Odată ce instalarea este finalizată, o putem verifica pur și simplu importând biblioteca, așa cum se arată mai jos:

 import tabula 

În cazul în care programul returnează un eroare de import , se recomandă reinstalarea pachetului.

The table-py biblioteca oferă diverse funcții, cum ar fi citirea unui fișier PDF, citirea unui tabel pe o anumită pagină a unui fișier PDF, citirea mai multor tabele pe aceeași pagină a unui fișier PDF sau Conversia fișierelor PDF direct într-un fișier CSV.

Să începem cu citirea unui fișier PDF

Citirea unui fișier PDF

The table-py biblioteca permite utilizatorilor săi să citească un fișier PDF folosind funcția cunoscută sub numele de read_pdf() funcţie.

cum se convertesc din int în șir în java

Sintaxă:

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

Parametri:

nume de fișier: The nume de fișier parametrul este numele fișierului pdf; am dori să citim datele de la.

Să convertim următorul tabel de date pdf în Pandas Data Frame.

Nume fișier: marksheet_table.py

Pagina 1

Nume Engleză Fizică Chimie Biologie Total
A 86 54 65 83 288
B 56 Patru cinci 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
ȘI 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Patru cinci 160
H 70 41 67 23 201
eu 80 43 88 28 239
J 90 37 Patru cinci 71 243
K 98 55 88 81 322
L 90 54 67 37 248
M 87 76 88 54 305
N 86 69 82 66 303
O 67 74 54 65 260
P 75 96 53 67 291
Q Patru cinci 87 80 Patru cinci 257
R 44 66 49 78 237
S 78 39 78 80 275
T 56 54 76 86 273
ÎN 43 90 64 77 274
ÎN 95 88 66 55 304
ÎN 64 67 86 80 297
X 82 56 Patru cinci 65 248
ȘI 79 65 70 54 268
CU 83 54 40 75 252

Iată un exemplu de mai jos, care demonstrează cum să extragi datele din pdf.

Exemplu:

 # 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]) 

Ieșire:

 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 

Explicaţie:

În exemplul de mai sus, am importat biblioteca necesară și am definit o variabilă care stochează adresa fișierului de date pdf. Am folosit apoi read_pdf() funcția de citire a datelor din pdf și tipărire pentru utilizatori. Ca urmare, tabelul de date a fost citit cu succes.

Notă: am folosit pagini parametrul în funcția read_pdf() pentru a citi datele din paginile specificate.

Să luăm în considerare un alt exemplu de tipărire a tabelelor dintr-o anumită pagină, să spunem pagina numărul 2.

Exemplu:

exemple nfa
 # 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]) 

Ieșire:

 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 

Explicaţie:

În exemplul de mai sus, am urmat aceeași procedură ca și mai devreme. Cu toate acestea, am atribuit pagini parametrul la 2 și a tipărit primul tabel al paginii specificate. Ca rezultat, tabelul cu indexul zero de pe pagina 2 a fost tipărit cu succes.

Acum, să înțelegem ce se întâmplă atunci când există mai multe tabele pe aceeași pagină a unui fișier de date PDF.

Gestionarea mai multor tabele pe aceeași pagină a unui fișier PDF

Putem gestiona mai mult de un tabel pe același folosind un parametru suplimentar cunoscut ca multiple_tables. The multiple_tables parametrul ia o valoare booleană pentru care read_pdf() funcția citește mai multe tabele ca tabele independente dacă este adevărat sau citește mai multe tabele ca un singur tabel dacă este fals.

Să luăm în considerare următorul exemplu care demonstrează cum să citim mai multe tabele ca tabele independente.

Exemplu:

 # 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]) 

Ieșire:

 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 

Explicaţie:

În exemplul următor, am importat din nou biblioteca necesară și am definit variabila care stochează adresa fișierului PDF. Am folosit apoi read_pdf() funcția și a inclus multiple_tables setarea parametrului la Adevărat . Apoi am tipărit separat tabelele multiple prezente pe pagina 2 a fișierului PDF.

Acum, să luăm în considerare un exemplu pentru a înțelege cum să citiți mai multe tabele ca un singur tabel.

Exemplu:

css primul copil
 # 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]) 

Ieșire:

 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 

Explicaţie:

În exemplul următor, am setat acum multiple_tables parametru la Fals . Ca urmare, tabelele prezente la pagina 2 sunt tratate ca un singur tabel.

Conversia fișierului PDF direct într-un fișier CSV

Putem converti un fișier PDF care conține date tabelare direct într-un fișier CSV cu ajutorul programului a se converti în() metoda în tabula bibliotecă.

Sintaxă:

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

Să luăm în considerare următorul exemplu care ilustrează conversia fișierului PDF în fișier CSV.

Exemplu:

 # 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.') 

Ieșire:

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

Explicaţie:

În exemplul de mai sus, am importat din nou biblioteca necesară și am definit variabila care conține adresa fișierului PDF. Am folosit apoi a se converti în() metoda de a converti fișierul PDF în fișierul CSV și a tipărit un mesaj de succes.

Mai mult, putem observa, de asemenea, că programul a returnat o declarație care spune că „pagini” argumentul nu este specificat. Astfel, tabelul prezent la pagina 1 va fi extras implicit.