logo

Python táblázat

Bevezetés

Általában nem szükséges, hogy az általunk használt adatok CSV vagy JSON formátumban legyenek elérhetők. Az adatok táblázat formájában, PDF fájlban tárolhatók. A legegyszerűbb esetben a táblázatot kimásolhatjuk és beilleszthetjük egy táblázatba vagy egy szövegszerkesztőbe. De az is előfordulhat, hogy ugyanabban a PDF-ben több, hasonló szerkezetű táblázatot is tudunk. Ilyen esetekben minden egyes táblázatot külön kell másolnunk és beillesztenünk, ami fárasztóvá teszi a munkát.

Ennek az unalmas munkának a megszüntetésére azonban a Python egy nyílt forráskódú könyvtárat biztosít, más néven asztal-py , amely lehetővé teszi a felhasználók számára, hogy egynél több táblázatot különállóan bontsanak ki. A következő oktatóanyagban megismerjük a táblázatokat és azok funkcióit.

Mi az a Tabula?

A Tabular a tabula-java alapvető burkolója, amely lehetővé teszi a felhasználók számára, hogy kivonják a táblázatot, és közvetlenül konvertálják a PDF-fájlt adatkeretekbe vagy JSON-ba. Python programozási nyelv . A felhasználó táblázatokat is kivonhat PDF-ből, és konvertálhatja azokat TSV, CSV vagy JSON formátumú fájlokká.

A Tabula egy grafikus felhasználói felület (GUI) alkalmazáson alapuló eszköz; azonban, táblázat-java egy parancssori felhasználói felületen (CUI) alapuló eszköz. A tabula-java biztosítja a Ruby , R és NodeJS kötéseit, de nem a Pythonhoz. Így a fejlesztők bevezették a fogalmát asztal-py amely Python-kötést biztosít.

Most pedig lássuk, ki használja a Tabulát, és hogyan telepíthetjük.

Ki használja a Tabulát?

A Tabula egy hatékony eszköz, amelyet bármilyen méretű hírszervezet használ a nyomozati jelentések erősítésére. Ezek Hírszervezetek a The Times of London, a ProPublica, a Foreign Policy, a The New York Times, a La Nacion (Argentína) és a St. Paul (MN) Pioneer Press.

Vannak olyan alapszervezetek, mint például a SchoolCuts.org, amelyek szintén a Tabulától függenek, hogy a nehézkes dokumentumokat emberbarát közforrásokká alakítsák.

A fentieken kívül vannak más háttérrel rendelkező kutatók is, akik a Tabulát használják arra, hogy PDF-jelentéseiket Excel-táblázatokká, CSV-fájlokká és JSON-formátumú fájlokká alakítsák, és elemzési és adatbázis-alkalmazások céljára használják.

A Tabula megvalósítása Pythonban

Miután egy kicsit megbeszéltük a Tabulát, értsük meg annak Pythonban való megvalósítását.

A könyvtár telepítése

Mivel asztal-py a Python nyílt forráskódú könyvtára, akkor a csipog telepítőt a könyvtár telepítéséhez.

 $ pip install tabula-py 

A könyvtár importálása

Miután a telepítés befejeződött, ellenőrizhetjük a könyvtár egyszerű importálásával az alábbiak szerint:

 import tabula 

Abban az esetben, ha a program egy importálási hiba , ajánlott a csomag újratelepítése.

A asztal-py A könyvtár különféle funkciókat kínál, mint például egy PDF-fájl olvasása, egy táblázat beolvasása egy PDF-fájl adott oldalán, több táblázat olvasása egy PDF-fájl ugyanazon oldalán, vagy PDF-fájlok közvetlen konvertálása CSV-fájllá.

Kezdjük egy PDF-fájl olvasásával

PDF fájl olvasása

A asztal-py könyvtár lehetővé teszi a felhasználók számára, hogy PDF-fájlokat olvassanak el a read_pdf() funkció.

Szintaxis:

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

Paraméterek:

fájl név: A fájl név paraméter a pdf fájl neve; az adatokat szeretnénk kiolvasni.

Alakítsuk át a következő pdf adattáblát panda adatkeretté.

Fájlnév: marksheet_table.py

1 oldal

Név angol Fizika Kémia Biológia Teljes
A 86 54 65 83 288
B 56 Négy öt 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
ÉS 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Négy öt 160
H 70 41 67 23 201
én 80 43 88 28 239
J 90 37 Négy ö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
O 67 74 54 65 260
P 75 96 53 67 291
K Négy öt 87 80 Négy öt 257
R 44 66 49 78 237
S 78 39 78 80 275
T 56 54 76 86 273
BAN BEN 43 90 64 77 274
BAN BEN 95 88 66 55 304
BAN BEN 64 67 86 80 297
x 82 56 Négy öt 65 248
ÉS 79 65 70 54 268
VAL VEL 83 54 40 75 252

Az alábbiakban egy példa látható, amely bemutatja, hogyan lehet kivonni az adatokat a pdf-ből.

Példa:

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

Kimenet:

 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 

Magyarázat:

A fenti példában importáltuk a szükséges könyvtárat, és definiáltunk egy változót, amely a pdf adatfájl címét tárolja. Ezután használtuk a read_pdf() funkció segítségével beolvassa az adatokat a pdf-ből és kinyomtatja a felhasználók számára. Ennek eredményeként az adattábla beolvasása sikeresen megtörtént.

Megjegyzés: Használtuk a oldalakat paramétert a read_pdf() függvényben az adatok beolvasásához a megadott oldal(ok)ról.

Tekintsünk egy másik példát a táblázatok egy adott oldalról történő kinyomtatására, mondjuk a 2. oldalról.

mi a modulo a c++-ban

Példa:

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

Kimenet:

 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 

Magyarázat:

A fenti példában ugyanazt az eljárást követtük, mint korábban. Mi azonban hozzárendeltük a oldalakat paramétert 2-re, és kinyomtatta a megadott oldal első táblázatát. Ennek eredményeként a 2. oldalon található nulla index táblázata sikeresen kinyomtatott.

Most pedig nézzük meg, mi történik, ha egy PDF-adatfájl ugyanazon az oldalán egynél több táblázat található.

Több táblázat kezelése egy PDF-fájl ugyanazon az oldalán

Egynél több táblát kezelhetünk ugyanazon egy további paraméterrel, amely az ún multiple_tables. A multiple_tables paraméter egy logikai értéket vesz fel, amelyre a read_pdf() függvény több táblát független táblaként olvas be, ha igaz, vagy több táblát egyetlen táblaként olvas be, ha hamis.

Tekintsük a következő példát, amely bemutatja, hogyan kell több táblát független táblázatként olvasni.

Példa:

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

Kimenet:

 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 

Magyarázat:

A következő példában ismét importáltuk a szükséges könyvtárat, és meghatároztuk a PDF fájl címét tároló változót. Ezután használtuk a read_pdf() funkciót és tartalmazta a multiple_tables paraméter beállításával Igaz . Ezt követően a PDF-fájl 2. oldalán található több táblázatot külön-külön kinyomtattuk.

Most nézzünk meg egy példát, hogy megértsük, hogyan kell több táblázatot egyetlen táblázatként olvasni.

Példa:

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

Kimenet:

 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 

Magyarázat:

A következő példában most beállítottuk a multiple_tables paraméterhez Hamis . Ennek eredményeként a 2. oldalon található táblázatok egyetlen táblázatként kezelendők.

PDF-fájl konvertálása közvetlenül CSV-fájllá

A táblázatos adatokat tartalmazó PDF fájlt közvetlenül CSV fájllá alakíthatjuk a segítségével convert_into() módszer a tabula könyvtár.

Szintaxis:

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

Tekintsük a következő példát a PDF-fájl CSV-fájllá konvertálására.

Példa:

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

Kimenet:

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

Magyarázat:

A fenti példában ismét importáltuk a szükséges könyvtárat, és definiáltuk a PDF fájl címét tartalmazó változót. Ezután használtuk a convert_into() módszerrel konvertálta a PDF-fájlt CSV-fájllá, és sikeres üzenetet nyomtatott ki.

Sőt, azt is megfigyelhetjük, hogy a program visszaadott egy nyilatkozatot, miszerint a 'oldalak' argumentum nincs megadva. Így az 1. oldalon található táblázat alapértelmezés szerint ki lesz bontva.