Una increíble biblioteca de Python para extraer datos tabulares de archivos PDF

Contenidos

Introducción

El formato PDF o archivo de documento portátil es uno de los formatos de archivo más comunes actualmente. Se utiliza ampliamente en todas las industrias, como en oficinas gubernamentales, atención médica e inclusive en el trabajo personal. Como consecuencia, existe una gran cantidad de datos no estructurados que existen en formato PDF y extraer estos datos para generar información significativa es un trabajo común entre los científicos de datos.

Hay varias bibliotecas de Python dedicadas a trabajar con documentos PDF como PYPDF2, etc. En este tutorial, usaré .

untitled-design9-6875785

¿Por qué Camelot?

  • Usted tiene el control: a diferencia de otras bibliotecas y herramientas que brindan un buen resultado o fallan miserablemente (sin intermediarios), Camelot le brinda el poder de modificar la extracción de tablas. (Esto es esencial puesto que todo en el mundo real, incluida la extracción de tablas PDF, es confuso).
  • Malo las tablas se pueden descartar en función de métricas como la precisión y los espacios en blanco, sin tener que mirar manualmente cada tabla.
  • Cada tabla es un DataFrame de pandas, que se integra a la perfección en .
  • Exporte a múltiples formatos, incluidos JSON, Excel, HTML y Sqlite.

Vamos a comenzar

Antes de instalar las bibliotecas de Camelot tenemos que instalar , una vez que instalemos el script fantasma, instalemos camelot-py.

Ejecutar debajo de los comandos :

pip install "camelot-py[cv]"

Una vez que haya instalado la biblioteca camelot-py, estaremos listos para comenzar. Estamos tratando de extraer una tabla de ingresos de GST a nivel estatal de este .

1ade_tu7csgbjclaqfe3caw-7747757

Tabla pdf

import camelot

Si tiene camelot, Python no imprimirá un mensaje de error, y si no, verá un ImportError.

# Syntax of the camelot.read_pdf function 
camelot.read_pdf(
    filepath,
    pages='1',
    password=None,
    flavor='lattice',
    suppress_stdout=False,
    layout_kwargs={},
    **kwargs,
)

Si tiene que extraer una tabla de diferentes páginas, debe dar el número de página.

tables2=camelot.read_pdf('gst-revenue-collection-march2020.pdf', flavor="stream", pages="0-3")
tables2

1svhisitx6pd_rz1vv_od6w-6774624

Esto le dará una lista total de la Tabla que está allí en un documento pdf. podemos elegir una tabla pasando el índice.

tables2[2]  # 2 is the index 

1ijpye1zvesgawtkxnzrrng-7589702

tables2[2].parsing_report

1umbobuvpdwehhzugkh41xq-4198103

El código anterior le proporcionará detalles como la precisión y el número de página. Tenga en cuenta que hay 2 páginas.

El siguiente código extraerá la tabla del documento pdf.

df2=tables2[2].df
df2  

1ow-af3lrrki2xotjsxj8na-9491633

En esta circunstancia, debido a que la tabla está dividida en dos páginas diferentes. Entonces podemos hacer una solución.

tables2[3]
tables2[3].parsing_report

1aih7b20zs7pgpnbwq4wgjw-4244202

Aquí se puede notar, extraemos la tabla de la página no 3.

df3=tables2[3].df
df3

17mwcha5yugncgfnvpyewsq-1232542

El siguiente es el código para agregar df2 y df3.

df4=df2.append(df3)
df4

1uvk-z-v_wvx89gzx4js9-g-2462588

df5=df4[1:]
df5.head()
new_header = df5.iloc[0]df5 = df5[1:]df5.columns = new_header

1w9qmyubuz7yd5qiasdzyra-6186338

Aquí tienes, hemos extraído una tabla de pdf, ahora podemos exportar estos datos en cualquier formato al sistema local.

Conclusión

Extraer datos tabulares de pdf con la ayuda de la biblioteca camelot es verdaderamente fácil. Al mismo tiempo, sabemos que hay una gran cantidad de datos no estructurados en formato pdf y, después de extraer las tablas, podemos hacer muchos análisis y visualización en función de sus necesidades comerciales.

Espero que este post te ayude y te ahorre una buena cantidad de tiempo. Déjame saber si dispones de alguna sugerencia.

FELIZ CODIFICACIÓN.

Sobre el Autor

id_card1-7705849

Prabhat Kumar – Analista asociado

Soy un ingeniero que hoy en día trabaja en las principales compañías multinacionales como analista asociado y entusiasta de la innovación, me encanta aprender cosas nuevas, creo que cada información dispone de una historia y me encanta leer las historias.

Prabhat Pathak () es Analista Asociado.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.