logo

Table Python

Úvod

Obecně není nutné, aby data, která používáme, byla k dispozici ve formátu CSV nebo JSON. Data mohou být uložena ve formě tabulky v souboru PDF. Jako nejjednodušší případ můžeme tabulku zkopírovat a vložit do tabulkového procesoru nebo textového editoru. Ale může se také stát, že můžeme ve stejném PDF vytvořit více než jednu tabulku, která má podobnou strukturu. Pro takové případy musíme zkopírovat a vložit každou z těchto tabulek samostatně, což činí práci únavnou.

Abychom však tuto bezútěšnou práci zkrátili, Python poskytuje knihovnu s otevřeným zdrojovým kódem, také známou jako tabulka-py , který umožňuje uživatelům extrahovat více než jednu tabulku odlišně. V následujícím tutoriálu se seznámíme s tabulkou a jejich funkcemi.

Co je Tabula?

Tabular je základní obal tabula-java, který uživatelům umožňuje extrahovat tabulku a převádět soubor PDF přímo do datových rámců nebo JSON pomocí Programovací jazyk Python . Uživatel může také extrahovat tabulky z PDF a převést je do souborů ve formátu TSV, CSV nebo JSON.

Tabula je nástroj založený na aplikaci grafického uživatelského rozhraní (GUI); nicméně, tabulka-java je nástroj založený na uživatelském rozhraní příkazového řádku (CUI). tabula-java poskytuje vazby Ruby, R a NodeJS, ale ne pro Python. Vývojáři tedy představili koncept tabulka-py který poskytuje vazbu Pythonu.

Nyní pojďme pochopit, kdo používá Tabula a jak ji můžeme nainstalovat.

Kdo používá Tabulu?

Tabula je mocný nástroj, který používají zpravodajské organizace všech velikostí k podpoře investigativního zpravodajství. Tyto Zpravodajské organizace jsou The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Argentina) a St. Paul (MN) Pioneer Press.

Existují obecné organizace, jako je SchoolCuts.org, které také závisí na Tabule, aby převedly neohrabané dokumenty na veřejné zdroje přátelské k lidem.

Kromě výše uvedeného existují výzkumníci z jiných prostředí, kteří využívají Tabula k přeměně svých sestav PDF na soubory ve formátu Excel, CSV a JSON a používají je pro účely analýzy a databázových aplikací.

Implementace Tabula v Pythonu

Jakmile jsme trochu probrali Tabulu, pojďme pochopit její implementaci v Pythonu.

Instalace knihovny

Od té doby tabulka-py je open-source knihovna Pythonu, budeme používat pip instalační program pro instalaci knihovny.

 $ pip install tabula-py 

Import knihovny

Jakmile je instalace dokončena, můžeme ji ověřit jednoduchým importem knihovny, jak je uvedeno níže:

 import tabula 

V případě, že program vrátí an chyba importu , doporučujeme balíček přeinstalovat.

The tabulka-py knihovna poskytuje různé funkce, jako je čtení souboru PDF, čtení tabulky na konkrétní stránce souboru PDF, čtení více tabulek na stejné stránce souboru PDF nebo převod souborů PDF přímo do souboru CSV.

Začněme čtením souboru PDF

Čtení souboru PDF

The tabulka-py knihovna umožňuje svým uživatelům číst soubor PDF pomocí funkce známé jako read_pdf() funkce.

návrhové vzory v jazyce Java

Syntax:

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

Parametry:

název souboru: The název souboru parametr je název souboru pdf; chceme data načíst.

Převeďte následující datovou tabulku ve formátu pdf do datového rámce pandy.

Název souboru: marksheet_table.py

Strana 1

název Angličtina Fyzika Chemie Biologie Celkový
A 86 54 65 83 288
B 56 Čtyři pět 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 Čtyři pět 160
H 70 41 67 23 201
80 43 88 28 239
J 90 37 Čtyři pět 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
Ó 67 74 54 65 260
P 75 96 53 67 291
Q Čtyři pět 87 80 Čtyři pět 257
R 44 66 49 78 237
S 78 39 78 80 275
T 56 54 76 86 273
V 43 90 64 77 274
V 95 88 66 55 304
V 64 67 86 80 297
X 82 56 Čtyři pět 65 248
A 79 65 70 54 268
S 83 54 40 75 252

Níže je uveden příklad, který ukazuje, jak extrahovat data z pdf.

Pří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ýstup:

 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 

Vysvětlení:

Ve výše uvedeném příkladu jsme importovali požadovanou knihovnu a definovali proměnnou, která ukládá adresu datového souboru pdf. Poté jsme použili read_pdf() funkce pro čtení dat z pdf a jejich tisk pro uživatele. V důsledku toho byla tabulka dat úspěšně načtena.

Poznámka: Použili jsme stránky parametr ve funkci read_pdf() pro čtení dat ze zadaných stránek.

Podívejme se na další příklad tisku tabulek z konkrétní stránky, řekněme stránky číslo 2.

Pří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ýstup:

 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 

Vysvětlení:

Ve výše uvedeném příkladu jsme použili stejný postup jako dříve. Nicméně jsme přidělili stránky parametr na 2 a vytiskne první tabulku zadané stránky. V důsledku toho byla tabulka indexu nula na stránce 2 úspěšně vytištěna.

Nyní pochopíme, co se stane, když je na stejné stránce datového souboru PDF více než jedna tabulka.

výpočet držby v excelu

Manipulace s více tabulkami na stejné stránce souboru PDF

Můžeme zpracovávat více než jednu tabulku na stejném pomocí dalšího parametru známého jako více_tabulek. The více_tabulek parametr přebírá booleovskou hodnotu, pro kterou je read_pdf() funkce čte více tabulek jako nezávislé tabulky, pokud je pravda, nebo čte více tabulek jako jednu tabulku, pokud je nepravda.

Podívejme se na následující příklad demonstrující, jak číst více tabulek jako nezávislé tabulky.

Pří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ýstup:

 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 

Vysvětlení:

V následujícím příkladu jsme opět importovali požadovanou knihovnu a definovali proměnnou, která ukládá adresu PDF souboru. Poté jsme použili read_pdf() funkce a zahrnoval více_tabulek nastavením parametru na Skutečný . Poté jsme samostatně vytiskli několik tabulek na straně 2 souboru PDF.

Nyní se podívejme na příklad, abychom pochopili, jak číst více tabulek jako jednu tabulku.

Pří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ýstup:

 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 

Vysvětlení:

V následujícím příkladu jsme nyní nastavili více_tabulek parametr k Nepravdivé . V důsledku toho jsou tabulky na stránce 2 považovány za jednu tabulku.

Převod souboru PDF přímo do souboru CSV

Soubor PDF, který obsahuje tabulková data, můžeme převést přímo do souboru CSV pomocí convert_into() metoda v tabula knihovna.

Syntax:

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

Podívejme se na následující příklad ilustrující převod souboru PDF do souboru CSV.

Pří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ýstup:

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

Vysvětlení:

Ve výše uvedeném příkladu jsme opět importovali požadovanou knihovnu a definovali proměnnou obsahující adresu PDF souboru. Poté jsme použili convert_into() převést soubor PDF na soubor CSV a vytisknout zprávu o úspěchu.

Navíc můžeme také pozorovat, že program vrátil prohlášení, že 'stránky' argument není specifikován. Tabulka na stránce 1 bude tedy ve výchozím nastavení extrahována.