logo

Tabell Python

En introduksjon

Generelt er det ikke nødvendig at dataene vi bruker er tilgjengelige i CSV- eller JSON-format. Dataene kan lagres i form av en tabell i en PDF-fil. Som en enkel sak kan vi kopiere og lime inn tabellen i et regneark eller et tekstredigeringsprogram. Men det kan også være at vi kan mer enn én tabell i samme PDF som har lignende strukturer. I slike tilfeller må vi kopiere og lime inn hver av disse tabellene separat, noe som gjør arbeidet kjedelig.

Men for å kutte dette dystre arbeidet tilbyr Python et åpen kildekode-bibliotek, også kjent som bord-py , som lar brukere trekke ut mer enn én tabell distinkt. I den følgende opplæringen vil vi lære om tabula og deres funksjoner.

Hva er Tabula?

Tabular er en grunnleggende innpakning av tabula-java som lar brukere trekke ut tabellen og konvertere PDF-filen direkte til datarammer eller JSON ved å bruke Python programmeringsspråk . Brukeren kan også trekke ut tabeller fra PDF og konvertere dem til TSV-, CSV- eller JSON-formatfiler.

Tabula er et verktøy basert på Graphical User Interface (GUI) Application; derimot, table-java er et verktøy basert på Command-Line User Interface (CUI). tabula-java gir bindingene til Ruby , R og NodeJS, men ikke for Python. Dermed introduserte utviklerne konseptet bord-py som gir Python-binding.

La oss nå forstå hvem som bruker Tabula og hvordan vi kan installere det.

Hvem bruker Tabula?

Tabula er et kraftig verktøy som brukes av nyhetsorganisasjoner i alle størrelser for å drive etterforskningsrapportering. Disse Nyhetsorganisasjoner er The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Argentina) og St. Paul (MN) Pioneer Press.

Det er grasrotorganisasjoner som SchoolCuts.org som også er avhengige av Tabula for å konvertere klønete dokumenter til menneskevennlige offentlige ressurser.

Bortsett fra det ovennevnte, er det forskere fra annen bakgrunn som bruker Tabula for å gjøre om PDF-rapportene sine til Excel-regneark, CSV-er og JSON-formatfiler og bruke det til å analysere og databaseapplikasjoner.

Implementering av Tabula i Python

Når vi har diskutert litt Tabula, la oss forstå implementeringen i Python.

Installasjon av biblioteket

blokker YouTube-annonser for Android

Siden bord-py er et åpen kildekode-bibliotek av Python, vil vi bruke pip installasjonsprogram for å installere biblioteket.

 $ pip install tabula-py 

Import av biblioteket

Når installasjonen er fullført, kan vi bekrefte den ved ganske enkelt å importere biblioteket som vist nedenfor:

 import tabula 

I tilfelle programmet returnerer en importfeil , anbefales det å installere pakken på nytt.

De bord-py biblioteket tilbyr ulike funksjoner som å lese en PDF-fil, lese en tabell på en bestemt side i en PDF-fil, lese flere tabeller på samme side i en PDF-fil, eller konvertere PDF-filer direkte til en CSV-fil.

hvilke måneder er i 3. kvartal

La oss begynne med å lese en PDF-fil

Leser en PDF-fil

De bord-py biblioteket lar brukerne lese en PDF-fil ved å bruke funksjonen kjent som read_pdf() funksjon.

Syntaks:

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

Parametere:

filnavn: De filnavn parameter er navnet på pdf-filen; vi ønsker å lese dataene fra.

La oss konvertere følgende pdf-datatabell til pandas dataramme.

Filnavn: marksheet_table.py

Side 1

Navn Engelsk Fysikk Kjemi Biologi Total
EN 86 54 65 83 288
B 56 Fire fem 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
OG 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Fire fem 160
H 70 41 67 23 201
Jeg 80 43 88 28 239
J 90 37 Fire 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 Fire fem 87 80 Fire 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 Fire fem 65 248
OG 79 65 70 54 268
MED 83 54 40 75 252

Her er et eksempel gitt nedenfor, som viser hvordan du trekker ut dataene fra pdf-en.

Eksempel:

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

Produksjon:

 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 

Forklaring:

rekha indisk

I eksemplet ovenfor har vi importert det nødvendige biblioteket og definert en variabel som lagrer adressen til pdf-datafilen. Vi har da brukt read_pdf() funksjon for å lese dataene fra pdf-en og skrive den ut for brukerne. Som et resultat har datatabellen blitt lest.

Merk: Vi har brukt sider parameter i read_pdf()-funksjonen for å lese dataene fra de angitte siden(e).

La oss vurdere et annet eksempel for å skrive ut tabellene fra en bestemt side, si side nummer 2.

Eksempel:

javascript if-setning
 # 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]) 

Produksjon:

 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 

Forklaring:

I eksemplet ovenfor har vi fulgt samme prosedyre som vi gjorde tidligere. Imidlertid har vi tildelt sider parameter til 2 og skrev ut den første tabellen på den angitte siden. Som et resultat har tabellen med indeks null på side 2 blitt skrevet ut.

La oss nå forstå hva som skjer når det er mer enn én tabell på samme side i en PDF-datafil.

Håndtere flere tabeller på samme side i en PDF-fil

Vi kan håndtere mer enn én tabell på samme ved å bruke en ekstra parameter kjent som multiple_tables. De multiple_tables parameteren tar en boolsk verdi som read_pdf() funksjonen leser flere tabeller som uavhengige tabeller hvis sanne eller leser flere tabeller som en enkelt tabell hvis false.

La oss vurdere følgende eksempel som viser hvordan du leser flere tabeller som uavhengige tabeller.

Eksempel:

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

Produksjon:

 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 

Forklaring:

I det følgende eksemplet har vi igjen importert det nødvendige biblioteket og definert variabelen som lagrer adressen til PDF-filen. Vi har da brukt read_pdf() funksjon og inkluderte multiple_tables parameter sette den til ekte . Vi har deretter skrevet ut de flere tabellene på side 2 i PDF-filen separat.

La oss nå vurdere et eksempel for å forstå hvordan du leser flere tabeller som en enkelt tabell.

Eksempel:

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

Produksjon:

css sentrering av et bilde
 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 

Forklaring:

I det følgende eksempelet har vi nå satt multiple_tables parameter til Falsk . Som et resultat blir tabellene på side 2 behandlet som én enkelt tabell.

Konvertering av PDF-fil direkte til en CSV-fil

Vi kan konvertere en PDF-fil som inneholder tabelldata direkte til en CSV-fil ved hjelp av konvertere til() metode i tabula bibliotek.

Syntaks:

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

La oss vurdere følgende eksempel som illustrerer konverteringen av PDF-filen til CSV-fil.

Eksempel:

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

Produksjon:

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

Forklaring:

I eksemplet ovenfor har vi igjen importert det nødvendige biblioteket og definert variabelen som inneholder adressen til PDF-filen. Vi har da brukt konvertere til() metode for å konvertere PDF-filen til CSV-filen og skrive ut en suksessmelding.

Dessuten kan vi også observere at programmet returnerte en uttalelse som sa at 'sider' argumentet er ikke spesifisert. Dermed vil tabellen på side 1 trekkes ut som standard.