es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo realizar un bucle en el formato de datos de tabula-py en Python.

Quiero saber cómo extraer una columna de una tabla específica de un archivo PDF en Python.

Mi código hasta ahora:

import tabula.io as tb
from tabula.io import read_pdf

dfs = tb.read_pdf(pdf_path, pages='all')
print(len(dfs)) # Esto muestra 73

Puedo acceder a la columna de una tabla individual haciendo print(dfs[2]['ID de sección']). Quiero saber cómo puedo buscar una columna en particular en todos los marcos de datos usando bucles.

Quiero hacer algo como esto:

for i in range(len(dfs)):
    if dfs[i][2] == 'ID de sección':
        print(dfs[i])
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para extraer una columna particular de todos los marcos de datos en Python, puedes utilizar un bucle for junto con la función select() de pandas.

    Aquí hay un ejemplo de código que demuestra esto:

    import pandas as pd
    import tabula.io as tb
    
    pdf_path = 'ruta/hacia/pdf'
    
    # Leer todas las páginas del PDF en una lista de marcos de datos
    dfs = tb.read_pdf(pdf_path, pages='all')
    
    # Iterar sobre cada marco de datos y extraer la columna deseada
    for df in dfs:
        col = df.select_dtypes(include=['object'])['Identificador de sección']
        print(col)
    

    En el código anterior, primero leemos todas las páginas del archivo PDF utilizando la función read_pdf() de tabula-py, que devuelve una lista de marcos de datos.

    Luego, iteramos sobre cada marco de datos utilizando un bucle for, y extraemos la columna con encabezado ‘Identificador de sección’ utilizando la función select() de pandas. La función select() devuelve un nuevo marco de datos que contiene solo las columnas seleccionadas.

    Finalmente, imprimimos la columna extraída.

    Nota: En el código anterior, asumimos que la columna ‘Identificador de sección’ contiene solo valores de cadena (es decir, dtype=’object’). Si la columna contiene valores numéricos, puedes cambiar el parámetro include en la función select_dtypes() a 'number' o np.number.

Comments are closed.