logo

Pitón de mesa

Una introducción

Generalmente, no es necesario que los datos que utilizamos estén disponibles en formato CSV o JSON. Los datos se pueden almacenar en forma de tabla en un archivo PDF. Como caso más sencillo, podemos copiar y pegar la tabla en una hoja de cálculo o en un editor de texto. Pero también puede ser que podamos tener más de una tabla en un mismo PDF que tenga estructuras similares. Para tales casos, tenemos que copiar y pegar cada una de estas tablas por separado, lo que hace que el trabajo sea tedioso.

carácter java a int

Sin embargo, para reducir este aburrido trabajo, Python proporciona una biblioteca de código abierto, también conocida como mesa-py , que permite a los usuarios extraer más de una tabla claramente. En el siguiente tutorial, aprenderemos sobre la tabula y sus funciones.

¿Qué es la tabula?

Tabular es un contenedor básico de tabula-java que permite a los usuarios extraer la tabla y convertir el archivo PDF directamente en marcos de datos o JSON usando Lenguaje de programación Python . El usuario también puede extraer tablas de PDF y convertirlas a archivos de formato TSV, CSV o JSON.

Tabula es una herramienta basada en una aplicación de interfaz gráfica de usuario (GUI); sin embargo, tabla-java es una herramienta basada en la interfaz de usuario de línea de comandos (CUI). tabula-java proporciona los enlaces de Ruby, R y NodeJS, pero no para Python. Así, los desarrolladores introdujeron el concepto de mesa-py que proporciona enlace de Python.

Ahora, comprendamos quién usa Tabula y cómo podemos instalarlo.

¿Quién utiliza Tabula?

Tabula es una poderosa herramienta que utilizan organizaciones de noticias de todos los tamaños para potenciar los reportajes de investigación. Estos Organizaciones de noticias son The Times of London, ProPublica, Foreign Policy, The New York Times, La Nación (Argentina) y St. Paul (MN) Pioneer Press.

Hay organizaciones de base como SchoolCuts.org que también dependen de Tabula para convertir documentos torpes en recursos públicos amigables para los humanos.

Aparte de lo anterior, hay investigadores de otros ámbitos que utilizan Tabula para convertir sus informes PDF en hojas de cálculo de Excel, archivos CSV y archivos de formato JSON y los utilizan con fines de análisis y aplicaciones de bases de datos.

Implementación de Tabula en Python

Una vez que hayamos discutido un poco la Tabula, comprendamos su implementación en Python.

instalación de la biblioteca

Desde mesa-py es una biblioteca de código abierto de Python, usaremos el pepita instalador para instalar la biblioteca.

 $ pip install tabula-py 

Importación de la biblioteca.

Una vez completada la instalación, podemos verificarla simplemente importando la biblioteca como se muestra a continuación:

 import tabula 

En caso de que el programa devuelva un error de importación , se recomienda reinstalar el paquete.

El mesa-py La biblioteca proporciona varias funciones, como leer un archivo PDF, leer una tabla en una página específica de un archivo PDF, leer varias tablas en la misma página de un archivo PDF o convertir archivos PDF directamente en un archivo CSV.

Comencemos leyendo un archivo PDF.

Leer un archivo PDF

El mesa-py La biblioteca permite a sus usuarios leer un archivo PDF utilizando la función conocida como leer_pdf() función.

Sintaxis:

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

Parámetros:

Nombre del archivo: El Nombre del archivo El parámetro es el nombre del archivo pdf; nos gustaría leer los datos.

Convirtamos la siguiente tabla de datos en PDF en un marco de datos de pandas.

Nombre del archivo: marksheet_table.py

Página 1

Nombre Inglés Física Química Biología Total
A 86 54 65 83 288
B 56 45 80 55 236
C 34 66 73 90 263
D 77 75 46 34 232
Y 74 82 55 77 288
F 69 76 82 46 273
GRAMO 53 33 29 45 160
h 70 41 67 23 201
I 80 43 88 28 239
j 90 37 45 71 243
k 98 55 88 81 322
l 90 54 67 37 248
METRO 87 76 88 54 305
norte 86 69 82 66 303
oh 67 74 54 65 260
PAG 75 96 53 67 291
q 45 87 80 45 257
R 44 66 49 78 237
S 78 39 78 80 275
t 56 54 76 86 273
EN 43 90 64 77 274
EN 95 88 66 55 304
EN 64 67 86 80 297
X 82 56 45 65 248
Y 79 65 70 54 268
CON 83 54 40 75 252

A continuación se muestra un ejemplo que demuestra cómo extraer los datos del pdf.

Ejemplo:

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

Producción:

 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 

Explicación:

En el ejemplo anterior, importamos la biblioteca requerida y definimos una variable que almacena la dirección del archivo de datos pdf. Luego hemos utilizado el leer_pdf() función para leer los datos del pdf y imprimirlos para los usuarios. Como resultado, la tabla de datos se leyó correctamente.

Nota: Hemos utilizado el paginas parámetro en la función read_pdf() para leer los datos de las páginas especificadas.

Consideremos otro ejemplo para imprimir las tablas de una página específica, digamos la página número 2.

Ejemplo:

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

Producción:

 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 

Explicación:

En el ejemplo anterior, hemos seguido el mismo procedimiento que hicimos antes. Sin embargo, hemos asignado el paginas parámetro a 2 e imprimió la primera tabla de la página especificada. Como resultado, la tabla del índice cero en la página 2 se imprimió exitosamente.

Ahora, comprendamos qué sucede cuando hay más de una tabla en la misma página de un archivo de datos PDF.

historia en java

Manejar varias tablas en la misma página de un archivo PDF

Podemos manejar más de una tabla en la misma usando un parámetro adicional conocido como múltiples_tablas. El múltiples_tablas El parámetro toma un valor booleano para el cual leer_pdf() La función lee varias tablas como tablas independientes si es verdadero o lee varias tablas como una sola tabla si es falso.

Consideremos el siguiente ejemplo que demuestra cómo leer varias tablas como tablas independientes.

Ejemplo:

clase abstracta java
 # 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]) 

Producción:

 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 

Explicación:

En el siguiente ejemplo, importamos nuevamente la biblioteca requerida y definimos la variable que almacena la dirección del archivo PDF. Luego hemos utilizado el leer_pdf() función e incluye el múltiples_tablas parámetro configurándolo en Verdadero . Luego imprimimos las múltiples tablas presentes en la página 2 del archivo PDF por separado.

Ahora, consideremos un ejemplo para comprender cómo leer varias tablas como una sola tabla.

Ejemplo:

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

Producción:

 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 

Explicación:

En el siguiente ejemplo, ahora hemos configurado el múltiples_tablas parámetro a FALSO . Como resultado, las tablas presentes en la página 2 se tratan como una sola tabla.

Convertir un archivo PDF directamente a un archivo CSV

Podemos convertir un archivo PDF que contiene datos tabulares directamente en un archivo CSV con la ayuda de Convertir en() método en el tabula biblioteca.

Sintaxis:

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

Consideremos el siguiente ejemplo que ilustra la conversión de un archivo PDF a un archivo CSV.

Ejemplo:

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

Producción:

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

Explicación:

En el ejemplo anterior, importamos nuevamente la biblioteca requerida y definimos la variable que contiene la dirección del archivo PDF. Luego hemos utilizado el Convertir en() método para convertir el archivo PDF en el archivo CSV e imprimió un mensaje de éxito.

Además, también podemos observar que el programa devolvió una declaración que decía que el 'páginas' El argumento no está especificado. Por lo tanto, la tabla presente en la página 1 se extraerá de forma predeterminada.