Predstavenie
Vo všeobecnosti nie je potrebné, aby údaje, ktoré používame, boli dostupné vo formáte CSV alebo JSON. Dáta môžu byť uložené vo forme tabuľky v súbore PDF. Ako najjednoduchší prípad môžeme tabuľku skopírovať a vložiť do tabuľky alebo textového editora. Môže sa však stať, že v jednom PDF môžeme vytvoriť viac ako jednu tabuľku, ktorá má podobné štruktúry. Pre takéto prípady musíme každú z týchto tabuliek skopírovať a prilepiť samostatne, čo robí prácu únavnou.
Aby sme však túto bezútešnú prácu prerušili, Python poskytuje knižnicu s otvoreným zdrojovým kódom, tiež známu ako tabuľka-py , ktorý umožňuje používateľom extrahovať viac ako jednu tabuľku zreteľne. V nasledujúcom návode sa dozvieme o tabuľkách a ich funkciách.
Čo je Tabula?
Tabular je základný obal tabula-java, ktorý umožňuje používateľom extrahovať tabuľku a konvertovať súbor PDF priamo do dátových rámcov alebo JSON pomocou Programovací jazyk Python . Používateľ môže tiež extrahovať tabuľky z PDF a previesť ich do súborov vo formáte TSV, CSV alebo JSON.
Tabula je nástroj založený na aplikácii grafického používateľského rozhrania (GUI); však, tabuľka-java je nástroj založený na používateľskom rozhraní príkazového riadka (CUI). tabula-java poskytuje väzby Ruby, R a NodeJS, ale nie pre Python. Vývojári teda predstavili koncept tabuľka-py ktorý poskytuje väzbu Pythonu.
Teraz pochopme, kto používa Tabulu a ako ju môžeme nainštalovať.
Kto používa Tabulu?
Tabula je výkonný nástroj, ktorý používajú spravodajské organizácie všetkých veľkostí na podporu investigatívneho spravodajstva. Títo Spravodajské organizácie sú The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Argentína) a St. Paul (MN) Pioneer Press.
Existujú obecné organizácie, ako napríklad SchoolCuts.org, ktoré tiež závisia od spoločnosti Tabula s cieľom premeniť neohrabané dokumenty na verejné zdroje vhodné pre ľudí.
Okrem vyššie uvedeného existujú výskumníci z iných prostredí, ktorí využívajú Tabula na premenu svojich správ PDF na súbory formátu Excel, CSV a JSON a používajú ich na účely analýzy a databázových aplikácií.
očíslovať abecedu
Implementácia Tabula v Pythone
Keď sme trochu diskutovali o Tabule, pochopme jej implementáciu v Pythone.
Inštalácia knižnice
Od r tabuľka-py je open-source knižnica Pythonu, budeme používať pip inštalačný program na inštaláciu knižnice.
$ pip install tabula-py
Import knižnice
Po dokončení inštalácie ju môžeme overiť jednoduchým importovaním knižnice, ako je uvedené nižšie:
import tabula
V prípade, že program vráti an chyba importu , odporúča sa preinštalovať balík.
The tabuľka-py knižnica poskytuje rôzne funkcie, ako je čítanie súboru PDF, čítanie tabuľky na určitej strane súboru PDF, čítanie viacerých tabuliek na tej istej stránke súboru PDF alebo prevod súborov PDF priamo do súboru CSV.
Začnime čítaním súboru PDF
Čítanie súboru PDF
The tabuľka-py knižnica umožňuje svojim používateľom čítať súbor PDF pomocou funkcie známej ako read_pdf() funkciu.
výpočet funkčného obdobia v exceli
Syntax:
obj = tabula.read_pdf(filename, args[])
Parametre:
názov súboru: The názov súboru parameter je názov súboru pdf; chceli by sme čítať údaje z.
Dovoľte nám previesť nasledujúcu tabuľku údajov vo formáte PDF na dátový rámec pandy.
Názov súboru: marksheet_table.py
Strana: 1
názov | Angličtina | fyzika | Chémia | Biológia | Celkom |
---|---|---|---|---|---|
A | 86 | 54 | 65 | 83 | 288 |
B | 56 | Štyri | 80 | 55 | 236 |
C | 3. 4 | 66 | 73 | 90 | 263 |
D | 77 | 75 | 46 | 3. 4 | 232 |
A | 74 | 82 | 55 | 77 | 288 |
F | 69 | 76 | 82 | 46 | 273 |
G | 53 | 33 | 29 | Štyri | 160 |
H | 70 | 41 | 67 | 23 | 201 |
ja | 80 | 43 | 88 | 28 | 239 |
J | 90 | 37 | Štyri | 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 | Štyri | 87 | 80 | Štyri | 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 |
V | 95 | 88 | 66 | 55 | 304 |
IN | 64 | 67 | 86 | 80 | 297 |
X | 82 | 56 | Štyri | 65 | 248 |
A | 79 | 65 | 70 | 54 | 268 |
S | 83 | 54 | 40 | 75 | 252 |
Nižšie je uvedený príklad, ktorý ukazuje, ako extrahovať údaje z pdf.
Príklad:
# 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])
Výkon:
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
Vysvetlenie:
Vo vyššie uvedenom príklade sme importovali požadovanú knižnicu a definovali premennú, ktorá ukladá adresu dátového súboru pdf. Potom sme použili read_pdf() funkcia na čítanie údajov z pdf a ich tlač pre používateľov. V dôsledku toho bola tabuľka údajov úspešne načítaná.
Poznámka: Použili sme stránky parameter vo funkcii read_pdf() na čítanie údajov zo zadanej stránky (stránok).
Uvažujme o ďalšom príklade tlače tabuliek z konkrétnej strany, povedzme strany číslo 2.
Príklad:
# 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])
Výkon:
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
Vysvetlenie:
Vo vyššie uvedenom príklade sme použili rovnaký postup ako predtým. My sme však pridelili stránky parameter na 2 a vytlačí prvú tabuľku zadanej strany. Výsledkom je, že tabuľka indexu nula na strane 2 bola úspešne vytlačená.
Teraz pochopme, čo sa stane, keď je na jednej strane dátového súboru PDF viac ako jedna tabuľka.
Spracovanie viacerých tabuliek na tej istej strane súboru PDF
Môžeme spracovať viac ako jednu tabuľku na tej istej pomocou dodatočného parametra známeho ako viaceré_tabuľky. The viaceré_tabuľky parameter nadobúda boolovskú hodnotu, pre ktorú je read_pdf() funkcia číta viacero tabuliek ako nezávislé tabuľky, ak je pravda, alebo číta viacero tabuliek ako jednu tabuľku, ak je nepravda.
Pozrime sa na nasledujúci príklad, ktorý demonštruje, ako čítať viaceré tabuľky ako nezávislé tabuľky.
príkaz javascript if
Príklad:
# 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])
Výkon:
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
Vysvetlenie:
V nasledujúcom príklade sme opäť naimportovali požadovanú knižnicu a definovali premennú, v ktorej je uložená adresa súboru PDF. Potom sme použili read_pdf() funkciu a zahŕňal viaceré_tabuľky nastavenie parametra na Pravda . Potom sme samostatne vytlačili viaceré tabuľky na strane 2 súboru PDF.
Teraz sa pozrime na príklad, aby sme pochopili, ako čítať viacero tabuliek ako jednu tabuľku.
Príklad:
# 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])
Výkon:
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
Vysvetlenie:
10 z 50
V nasledujúcom príklade sme teraz nastavili viaceré_tabuľky parameter do Nepravdivé . V dôsledku toho sa s tabuľkami na strane 2 zaobchádza ako s jednou tabuľkou.
Konverzia súboru PDF priamo do súboru CSV
Súbor PDF, ktorý obsahuje tabuľkové údaje, môžeme previesť priamo do súboru CSV pomocou convert_into() metóda v tabula knižnica.
Syntax:
tabula.convert_into('filename.pdf', 'newfilename.csv', args[])
Uvažujme nasledujúci príklad ilustrujúci prevod súboru PDF do súboru CSV.
Príklad:
# 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.')
Výkon:
'pages' argument isn't specified.Will extract only from page 1 by default. The PDF file has been converted successfully.
Vysvetlenie:
Vo vyššie uvedenom príklade sme opäť importovali požadovanú knižnicu a definovali premennú obsahujúcu adresu súboru PDF. Potom sme použili convert_into() na konverziu súboru PDF na súbor CSV a vytlačenie správy o úspechu.
Okrem toho môžeme tiež pozorovať, že program vrátil vyhlásenie, že 'stránky' argument nie je špecifikovaný. Tabuľka na strane 1 bude teda štandardne extrahovaná.