logo

Tabell Python

En introduktion

I allmänhet är det inte nödvändigt att den data vi använder är tillgänglig i CSV- eller JSON-format. Data kan lagras i form av en tabell i en PDF-fil. Som ett mycket enkelt fall kan vi kopiera och klistra in tabellen i ett kalkylblad eller en textredigerare. Men det kan också vara så att vi kan mer än en tabell i samma PDF som har liknande strukturer. I sådana fall måste vi kopiera och klistra in var och en av dessa tabeller separat, vilket gör arbetet tråkigt.

Men för att minska detta trista arbete tillhandahåller Python ett bibliotek med öppen källkod, även känt som bord-py , som tillåter användare att extrahera mer än en tabell distinkt. I följande handledning kommer vi att lära oss om tabula och deras funktioner.

Vad är Tabula?

Tabular är ett grundläggande omslag av tabula-java som tillåter användare att extrahera tabellen och konvertera PDF-filen direkt till dataramar eller JSON med hjälp av Python programmeringsspråk . Användaren kan också extrahera tabeller från PDF och konvertera dem till TSV-, CSV- eller JSON-filer.

Tabula är ett verktyg baserat på Graphical User Interface (GUI) Application; dock, tabell-java är ett verktyg baserat på Command-line User Interface (CUI). tabula-java tillhandahåller bindningarna av Ruby , R och NodeJS men inte för Python. Således introducerade utvecklarna begreppet bord-py som ger Python-bindning.

Låt oss nu förstå vem som använder Tabula och hur vi kan installera det.

Vem använder Tabula?

Tabula är ett kraftfullt verktyg som används av nyhetsorganisationer av alla storlekar för att driva undersökande rapportering. Dessa Nyhetsorganisationer är The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Argentina) och St. Paul (MN) Pioneer Press.

Det finns gräsrotsorganisationer som SchoolCuts.org som också är beroende av Tabula för att omvandla klumpiga dokument till mänskliga offentliga resurser.

Bortsett från ovanstående finns det forskare från andra bakgrunder som använder Tabula för att omvandla sina PDF-rapporter till Excel-kalkylblad, CSV-filer och JSON-formatfiler och använda dem för att analysera och databasapplikationer.

Implementering av Tabula i Python

När vi har diskuterat lite Tabula, låt oss förstå dess implementering i Python.

Installation av biblioteket

Eftersom bord-py är ett bibliotek med öppen källkod för Python kommer vi att använda pip installationsprogram för att installera biblioteket.

 $ pip install tabula-py 

Import av biblioteket

När installationen är klar kan vi verifiera den genom att helt enkelt importera biblioteket enligt nedan:

 import tabula 

Om programmet returnerar en importfel , rekommenderas att installera om paketet.

De bord-py biblioteket tillhandahåller olika funktioner som att läsa en PDF-fil, läsa en tabell på en specifik sida i en PDF-fil, läsa flera tabeller på samma sida i en PDF-fil eller konvertera PDF-filer direkt till en CSV-fil.

Låt oss börja med att läsa en PDF-fil

Läser en PDF-fil

De bord-py biblioteket låter sina användare läsa en PDF-fil med funktionen som kallas read_pdf() fungera.

Syntax:

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

Parametrar:

filnamn: De filnamn parameter är namnet på pdf-filen; vi skulle vilja läsa data från.

Låt oss konvertera följande pdf-datatabell till pandas dataram.

Filnamn: marksheet_table.py

Sida 1

namn engelsk Fysik Kemi Biologi Total
A 86 54 65 83 288
B 56 Fyra fem 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
OCH 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Fyra fem 160
H 70 41 67 23 201
jag 80 43 88 28 239
J 90 37 Fyra fem 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 Fyra fem 87 80 Fyra fem 257
R 44 66 49 78 237
S 78 39 78 80 275
T 56 54 76 86 273
I 43 90 64 77 274
I 95 88 66 55 304
I 64 67 86 80 297
X 82 56 Fyra fem 65 248
OCH 79 65 70 54 268
MED 83 54 40 75 252

Här är ett exempel nedan, som visar hur man extraherar data från pdf:en.

Exempel:

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

Produktion:

typgjutning och typkonvertering i java
 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 

Förklaring:

I exemplet ovan har vi importerat det nödvändiga biblioteket och definierat en variabel som lagrar adressen till pdf-datafilen. Vi har då använt read_pdf() funktion för att läsa data från pdf:en och skriva ut den för användarna. Som ett resultat har datatabellen lästs framgångsrikt.

Obs: Vi har använt sidor parametern i funktionen read_pdf() för att läsa data från den eller de angivna sidorna.

Låt oss överväga ett annat exempel för att skriva ut tabellerna från en specifik sida, säg sida nummer 2.

Exempel:

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

Produktion:

 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 

Förklaring:

I exemplet ovan har vi följt samma procedur som vi gjorde tidigare. Vi har dock tilldelat sidor parameter till 2 och skrev ut den första tabellen på den angivna sidan. Som ett resultat har tabellen med index noll på sidan 2 skrivits ut framgångsrikt.

Låt oss nu förstå vad som händer när det finns mer än en tabell på samma sida i en PDF-datafil.

strängjämföra i java

Hantera flera tabeller på samma sida i en PDF-fil

Vi kan hantera mer än en tabell på samma med en extra parameter som kallas multipla_tables. De multiple_tables parametern tar ett booleskt värde för vilket read_pdf() funktionen läser flera tabeller som oberoende tabeller om sant eller läser flera tabeller som en enda tabell om falskt.

Låt oss överväga följande exempel som visar hur man läser flera tabeller som oberoende tabeller.

Exempel:

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

Produktion:

 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 

Förklaring:

I följande exempel har vi återigen importerat det nödvändiga biblioteket och definierat variabeln som lagrar adressen till PDF-filen. Vi har då använt read_pdf() funktion och inkluderade multiple_tables parameter som ställer in den till Sann . Vi har sedan skrivit ut de flera tabellerna som finns på sidan 2 i PDF-filen separat.

Låt oss nu överväga ett exempel för att förstå hur man läser flera tabeller som en enda tabell.

Exempel:

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

Produktion:

 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 

Förklaring:

I följande exempel har vi nu ställt in multiple_tables parameter till Falsk . Som ett resultat av detta behandlas tabellerna på sidan 2 som en enda tabell.

Konvertera PDF-fil direkt till en CSV-fil

Vi kan konvertera en PDF-fil som innehåller tabelldata direkt till en CSV-fil med hjälp av konvertera till() metod i tabula bibliotek.

Syntax:

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

Låt oss överväga följande exempel som illustrerar konverteringen av PDF-filen till CSV-fil.

Exempel:

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

Produktion:

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

Förklaring:

I exemplet ovan har vi återigen importerat det nödvändiga biblioteket och definierat variabeln som innehåller adressen till PDF-filen. Vi har då använt konvertera till() metod för att konvertera PDF-filen till CSV-filen och skriva ut ett framgångsrikt meddelande.

Dessutom kan vi också observera att programmet returnerade ett uttalande som säger att 'sidor' argumentet är inte specificerat. Således kommer tabellen på sidan 1 att extraheras som standard.