logo

Lentelė Python

Pristatymas

Paprastai nebūtina, kad mūsų naudojami duomenys būtų pasiekiami CSV arba JSON formatu. Duomenys gali būti saugomi lentelės pavidalu PDF faile. Paprasčiausiu atveju lentelę galime nukopijuoti ir įklijuoti į skaičiuoklę arba teksto rengyklę. Tačiau gali būti, kad tame pačiame PDF faile galime turėti daugiau nei vieną lentelę, kurios struktūra yra panaši. Tokiais atvejais turime nukopijuoti ir įklijuoti kiekvieną iš šių lentelių atskirai, todėl darbas yra nuobodus.

Tačiau, kad sumažintų šį nuobodų darbą, „Python“ pateikia atvirojo kodo biblioteką, dar žinomą kaip stalas-py , kuri leidžia vartotojams aiškiai išskirti daugiau nei vieną lentelę. Tolesnėje pamokoje sužinosime apie lentelę ir jų funkcijas.

Kas yra Tabula?

„Tabular“ yra pagrindinis „tabula-java“ paketas, leidžiantis vartotojams išgauti lentelę ir konvertuoti PDF failą tiesiai į duomenų rėmelius arba JSON naudojant Python programavimo kalba . Vartotojas taip pat gali išgauti lenteles iš PDF ir konvertuoti jas į TSV, CSV arba JSON formato failus.

„Tabula“ yra įrankis, pagrįstas grafinės vartotojo sąsajos (GUI) programa; tačiau lentelė-java yra įrankis, pagrįstas komandų eilutės vartotojo sąsaja (CUI). tabula-java suteikia Ruby , R ir NodeJS surišimus, bet ne Python. Taigi kūrėjai pristatė sąvoką stalas-py kuris suteikia Python susiejimą.

Dabar supraskime, kas naudoja „Tabula“ ir kaip galime ją įdiegti.

Kas naudojasi „Tabula“?

„Tabula“ yra galingas įrankis, kurį naudoja įvairaus dydžio naujienų organizacijos, siekdamos teikti tiriamąsias ataskaitas. Šie Naujienų organizacijos yra „The Times of London“, „ProPublica“, „Foreign Policy“, „The New York Times“, „La Nacion“ (Argentina) ir „St. Paul“ (MN) „Pioneer Press“.

Yra paprastų organizacijų, pvz., SchoolCuts.org, kurios taip pat priklauso nuo „Tabula“, siekdamos paversti nepatogius dokumentus žmonėms patogiais viešaisiais ištekliais.

Be to, kas išdėstyta pirmiau, yra kitų sričių mokslininkų, kurie naudoja „Tabula“ savo PDF ataskaitoms paversti „Excel“ skaičiuoklėmis, CSV ir JSON formato failais ir naudoja ją analizuodami ir duomenų bazių programoms.

isempty java

Tabula įdiegimas Python

Kai šiek tiek aptarsime Tabulą, supraskime jos įgyvendinimą Python.

Bibliotekos įrengimas

Nuo stalas-py yra atvirojo kodo Python biblioteka, naudosime pip diegimo programą, kad įdiegtumėte biblioteką.

 $ pip install tabula-py 

Bibliotekos importavimas

Kai diegimas bus baigtas, galime tai patikrinti tiesiog importuodami biblioteką, kaip parodyta toliau:

 import tabula 

Jei programa grąžina an importavimo klaida , rekomenduojama iš naujo įdiegti paketą.

The stalas-py biblioteka teikia įvairias funkcijas, tokias kaip PDF failo skaitymas, lentelės skaitymas konkrečiame PDF failo puslapyje, kelių lentelių skaitymas tame pačiame PDF failo puslapyje arba PDF failų konvertavimas tiesiai į CSV failą.

Pradėkime nuo PDF failo skaitymo

Skaityti PDF failą

The stalas-py biblioteka leidžia jos vartotojams skaityti PDF failą naudojant funkciją, žinomą kaip skaityti_pdf() funkcija.

Sintaksė:

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

Parametrai:

failo pavadinimas: The failo pavadinimas parametras yra pdf failo pavadinimas; norėtume perskaityti duomenis iš.

Konvertuosime šią pdf duomenų lentelę į pandos duomenų rėmelį.

Failo pavadinimas: marksheet_table.py

Puslapis 1

vardas Anglų Fizika Chemija Biologija Iš viso
A 86 54 65 83 288
B 56 Keturi 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
IR 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Keturi 160
H 70 41 67 23 201
80 43 88 28 239
J 90 37 Keturi 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
K Keturi 87 80 Keturi 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 Keturi 65 248
IR 79 65 70 54 268
SU 83 54 40 75 252

Toliau pateikiamas pavyzdys, rodantis, kaip išgauti duomenis iš pdf.

Pavyzdys:

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

Išvestis:

 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 

Paaiškinimas:

Aukščiau pateiktame pavyzdyje importavome reikiamą biblioteką ir apibrėžėme kintamąjį, kuriame saugomas pdf duomenų failo adresas. Tada mes panaudojome skaityti_pdf() funkcija nuskaityti duomenis iš pdf ir atspausdinti juos vartotojams. Dėl to duomenų lentelė buvo sėkmingai nuskaityta.

Pastaba: mes naudojome puslapių parametrą read_pdf() funkcijoje, kad nuskaitytų duomenis iš nurodyto puslapio (-ių).

Panagrinėkime kitą pavyzdį, kaip spausdinti lenteles iš konkretaus puslapio, tarkime, 2 puslapio.

Pavyzdys:

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

Išvestis:

 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 

Paaiškinimas:

Aukščiau pateiktame pavyzdyje mes atlikome tą pačią procedūrą, kaip ir anksčiau. Tačiau mes paskyrėme puslapių parametrą į 2 ir išspausdino pirmąją nurodyto puslapio lentelę. Dėl to 2 puslapyje esanti nulio rodyklės lentelė buvo sėkmingai išspausdinta.

Dabar supraskime, kas nutinka, kai tame pačiame PDF duomenų failo puslapyje yra daugiau nei viena lentelė.

konvertuoti eilutę į java

Kelių lentelių tvarkymas tame pačiame PDF failo puslapyje

Naudodami papildomą parametrą, žinomą kaip, galime tvarkyti daugiau nei vieną lentelę kelios_lentelės. The kelios_lentelės parametras įgauna Būlio reikšmę, kuriai skaityti_pdf() funkcija nuskaito kelias lenteles kaip nepriklausomas lenteles, jei tiesa, arba nuskaito kelias lenteles kaip vieną lentelę, jei klaidinga.

Panagrinėkime šį pavyzdį, rodantį, kaip skaityti kelias lenteles kaip nepriklausomas lenteles.

Pavyzdys:

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

Išvestis:

 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 

Paaiškinimas:

Šiame pavyzdyje mes vėl importavome reikiamą biblioteką ir apibrėžėme kintamąjį, kuriame saugomas PDF failo adresas. Tada mes panaudojome skaityti_pdf() funkcija ir įtraukta kelios_lentelės parametro nustatymas Tiesa . Tada atskirai išspausdinome kelias lenteles, pateiktas 2 PDF failo puslapyje.

Dabar panagrinėkime pavyzdį, kad suprastume, kaip skaityti kelias lenteles kaip vieną lentelę.

Pavyzdys:

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

Išvestis:

 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 

Paaiškinimas:

Toliau pateiktame pavyzdyje mes nustatėme kelios_lentelės parametras į Netiesa . Todėl 2 puslapyje pateiktos lentelės laikomos viena lentele.

PDF failo konvertavimas tiesiai į CSV failą

Naudodami PDF failą, kuriame yra lentelės duomenų, galime konvertuoti tiesiai į CSV failą konvertuoti_į() metodas tabula biblioteka.

Sintaksė:

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

Panagrinėkime šį pavyzdį, iliustruojantį PDF failo konvertavimą į CSV failą.

Pavyzdys:

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

Išvestis:

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

Paaiškinimas:

Aukščiau pateiktame pavyzdyje mes vėl importavome reikiamą biblioteką ir apibrėžėme kintamąjį, kuriame yra PDF failo adresas. Tada mes panaudojome konvertuoti_į() būdas konvertuoti PDF failą į CSV failą ir išspausdinti sėkmės pranešimą.

Be to, taip pat galime pastebėti, kad programa grąžino teiginį, kad 'puslapiai' argumentas nenurodytas. Taigi 1 puslapyje esanti lentelė bus ištraukta pagal numatytuosius nustatymus.