logo

Tabela Python

Uvod

Na splošno ni nujno, da so podatki, ki jih uporabljamo, na voljo v formatu CSV ali JSON. Podatke lahko shranite v obliki tabele v PDF datoteko. Kot najbolj enostaven primer lahko kopiramo in prilepimo tabelo v preglednico ali urejevalnik besedil. Lahko pa se tudi zgodi, da lahko v istem PDF-ju imamo več kot eno tabelo s podobnimi strukturami. V takih primerih moramo kopirati in prilepiti vsako od teh tabel posebej, kar naredi delo dolgočasno.

Vendar pa Python za zmanjšanje tega mučnega dela ponuja odprtokodno knjižnico, znano tudi kot table-py , ki uporabnikom omogoča, da ločeno ekstrahirajo več kot eno tabelo. V naslednji vadnici bomo spoznali tabule in njihove funkcije.

Kaj je Tabula?

Tabular je osnovni ovoj tabula-java, ki uporabnikom omogoča ekstrakcijo tabele in pretvori datoteko PDF neposredno v podatkovne okvire ali JSON z uporabo Programski jezik Python . Uporabnik lahko tudi ekstrahira tabele iz PDF-ja in jih pretvori v datoteke formata TSV, CSV ali JSON.

Tabula je orodje, ki temelji na aplikaciji grafičnega uporabniškega vmesnika (GUI); vendar, tabela-java je orodje, ki temelji na uporabniškem vmesniku ukazne vrstice (CUI). tabula-java zagotavlja vezave Ruby, R in NodeJS, vendar ne za Python. Tako so razvijalci predstavili koncept table-py ki zagotavlja vezavo Python.

Zdaj pa poglejmo, kdo uporablja Tabulo in kako jo lahko namestimo.

Kdo uporablja Tabulo?

Tabula je močno orodje, ki ga uporabljajo novičarske organizacije vseh velikosti za spodbujanje preiskovalnega poročanja. te Novinarske organizacije so The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Argentina) in St. Paul (MN) Pioneer Press.

Obstajajo lokalne organizacije, kot je SchoolCuts.org, ki so prav tako odvisne od Tabule pri pretvorbi okornih dokumentov v ljudem prijazne javne vire.

Poleg zgoraj naštetega obstajajo raziskovalci iz drugih okolij, ki tabulo uporabljajo za pretvorbo svojih poročil PDF v preglednice Excel, CSV in datoteke formata JSON ter jo uporabljajo za namene analiziranja in aplikacij za baze podatkov.

Implementacija tabule v Pythonu

Ko smo malo razpravljali o Tabuli, poglejmo njeno implementacijo v Python.

Namestitev knjižnice

vrstico in stolpec

Od table-py je odprtokodna knjižnica Pythona, uporabili bomo pip namestitveni program, da namestite knjižnico.

 $ pip install tabula-py 

Uvoz knjižnice

Ko je namestitev končana, jo lahko preverimo tako, da preprosto uvozimo knjižnico, kot je prikazano spodaj:

 import tabula 

V primeru, da program vrne an napaka pri uvozu , priporočamo, da paket znova namestite.

The table-py knjižnica ponuja različne funkcije, kot je branje datoteke PDF, branje tabele na določeni strani datoteke PDF, branje več tabel na isti strani datoteke PDF ali pretvorba datotek PDF neposredno v datoteko CSV.

Začnimo z branjem datoteke PDF

Branje datoteke PDF

The table-py knjižnica svojim uporabnikom omogoča branje datoteke PDF s funkcijo, imenovano read_pdf() funkcijo.

Sintaksa:

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

Parametri:

Ime datoteke: The Ime datoteke parameter je ime pdf datoteke; bi radi prebrali podatke iz.

Pretvorimo naslednjo podatkovno tabelo pdf v podatkovni okvir pandas.

Ime datoteke: marksheet_table.py

Stran: 1

Ime angleščina Fizika kemija Biologija Skupaj
A 86 54 65 83 288
B 56 Štiri 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
IN 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Štiri 160
H 70 41 67 23 201
jaz 80 43 88 28 239
J 90 37 Štiri 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 Štiri 87 80 Štiri 257
R 44 66 49 78 237
S 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
X 82 56 Štiri 65 248
IN 79 65 70 54 268
Z 83 54 40 75 252

Spodaj je naveden primer, ki prikazuje, kako ekstrahirati podatke iz pdf-ja.

primer:

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

Izhod:

 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 

Pojasnilo:

V zgornjem primeru smo uvozili zahtevano knjižnico in definirali spremenljivko, ki shranjuje naslov podatkovne datoteke pdf. Nato smo uporabili read_pdf() funkcija za branje podatkov iz pdf-ja in njihovo tiskanje za uporabnike. Posledično je bila podatkovna tabela uspešno prebrana.

Opomba: Uporabili smo strani parameter v funkciji read_pdf() za branje podatkov s podanih strani.

Oglejmo si še en primer tiskanja tabel z določene strani, recimo strani številka 2.

primer:

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

Izhod:

 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 

Pojasnilo:

V zgornjem primeru smo sledili istemu postopku kot prej. Vendar smo dodelili strani parameter na 2 in natisnil prvo tabelo podane strani. Posledično je bila tabela indeksa nič na strani 2 uspešno natisnjena.

Zdaj pa poglejmo, kaj se zgodi, ko je na isti strani podatkovne datoteke PDF več kot ena tabela.

shloka mehta izobraževanje

Upravljanje z več tabelami na isti strani datoteke PDF

Obravnavamo lahko več kot eno tabelo na isti z dodatnim parametrom, znanim kot več_tabel. The več_tabel parameter ima logično vrednost, za katero je read_pdf() funkcija bere več tabel kot neodvisnih tabel, če je true, ali bere več tabel kot eno samo tabelo, če je false.

Oglejmo si naslednji primer, ki prikazuje, kako brati več tabel kot neodvisnih tabel.

primer:

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

Izhod:

 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 

Pojasnilo:

V naslednjem primeru smo ponovno uvozili zahtevano knjižnico in definirali spremenljivko, ki hrani naslov datoteke PDF. Nato smo uporabili read_pdf() funkcijo in je vključeval več_tabel parameter, ki ga nastavi na Prav . Nato smo ločeno natisnili več tabel na strani 2 datoteke PDF.

Zdaj pa si oglejmo primer, da razumemo, kako brati več tabel kot eno samo tabelo.

primer:

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

Izhod:

 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 

Pojasnilo:

V naslednjem primeru smo zdaj nastavili več_tabel parameter za False . Posledično se tabele na strani 2 obravnavajo kot ena tabela.

Pretvarjanje datoteke PDF neposredno v datoteko CSV

Datoteko PDF, ki vsebuje tabelarične podatke, lahko pretvorimo neposredno v datoteko CSV s pomočjo pretvori_v() metoda v tabula knjižnica.

bool v niz java

Sintaksa:

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

Oglejmo si naslednji primer, ki ponazarja pretvorbo datoteke PDF v datoteko CSV.

primer:

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

Izhod:

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

Pojasnilo:

V zgornjem primeru smo ponovno uvozili zahtevano knjižnico in definirali spremenljivko, ki vsebuje naslov datoteke PDF. Nato smo uporabili pretvori_v() način za pretvorbo datoteke PDF v datoteko CSV in natisnjeno sporočilo o uspehu.

Poleg tega lahko opazimo tudi, da je program vrnil izjavo, da je 'strani' argument ni določen. Tako bo tabela na 1. strani privzeto ekstrahirana.