lunes, 7 de abril de 2025

Evaluación. Python.

Del registro a la tabla

Quedó dicho en [esta entrada] que los soportes -hoja de datos como informatización (o como mera digitalización) de la evaluación era un recurso de cierta incidencia en la práctica profesional (menos de lo deseable, también quedó dicho), así que es de esperar que exista un número importante de documentos que contengan datos de este tipo en los expedientes SEO. Dentro de una buena práctica del Servicio como tal está el análisis de esta documentación y Python nos puede ayudar en ello.


De hecho [el script de la entrada] antes citada puede considerarse la base de ese procedimiento, si bien necesitamos complementarlo con el procedimiento que desarrollamos precisamente [en la entrada que ha precedido] a la actual. En realidad lo que ahora se trata es de aplicar ese mismo procedimiento a una segunda situación o necesidad: la conversión de registros individuales en una base de datos.

Resumiendo, se trata de lo siguiente:
  • Recopilamos los datos de interés de documentos-Excel que contienen registros de resultados de aplicación de una prueba de la que carecemos de una tabla de datos que sirva de síntesis acumulativa de datos. Para ello empleamos el procedimiento descrito en este script (o uno equivalente, convenientemente adaptado a la realidad del registro a estudiar). 
from openpyxl import load_workbook

lista_al = ['Jaime','Lorenzo','Maria','Juan','Antonio','Lucrecia','Marcos','Susana','Noemi','Javier']
nombres = []
item3 = []
pdt = []

for i in range(0,9):
    libro = load_workbook(filename = 'Reg_'+lista_al[i]+'.xlsx')
    hoja =libro['Sheet']
    
    celda_nom = hoja['B2'].value
    print (celda_nom)
    nombres.append(celda_nom)
    
    celda_it3 = hoja['G4'].value
    print(celda_it3)
    item3.append(celda_it3)
    
    celda_pd = hoja['J2'].value
    print(celda_pd)
    pdt.append(celda_pd)

  •  Sobre la lista de datos que hemos obtenido en el proceso anterior creamos un documento-Excel en formato hoja de datos o data frame. Para ello podemos recurrir al procedimiento desarrollado en este script, con los ajustes que resulten precisos, claro está.

#Importar el módulo de creación del libro excell
from openpyxl import Workbook

#Lista de encabezados
campos = [
            'Nombre','Apellidos','Curso',
            'r1','r2','r3','r4','r5','r6','r7',
            'p1','p2','p3','p4','p5','p6','p7',
            'PD','Porcentaje','P. típica'
    ]

#Crear libro
tabla = Workbook()

#Hoja activa
hoja = tabla.active

#Copiar encabezados en columnas

for i in range(0,20):
    hoja.cell(row = 1, column = i+1, value = campos[i])


#Guardar libro
tabla.save("Prueba_uno_tabla.xlsx")

Y finalizamos trasladando los datos recogidos en la fase 1 de este procedimiento a la tabla del documento-Excel qua acabamos de crear. Es en este punto donde debemos pensar en un procedimiento específico, ya que también lo es el objetivo que nos proponemos; no obstante, si lo que nos planteamos en estos momentos no tiene pretensiones de ser demasiado complejo, lo cierto es que el mismo procedimiento que empleamos para crear el encabezado de la tabla nos puede servir para completar la tabla, columna a columna, ya que así hemos recogido los datos de los registros individuales: en listas que se asimilan a las columnas de la tabla.

Con las modificaciones que corresponde, esta podría ser una primera solución. No es muy "elegante" que digamos, y puede ser mejora, pero es funcional, sencilla y replicable, así que de momento nos quedamos con ella. Aquí te muestro un ejemplo...

for i in range(0,10):
    hoja.cell(row = i+2, column = 1, value = nombres[i])

... que no te resultará desconocido después de haber estudiado el script de creación de la tabla: de hecho es el mismo, salvo la modificación del funcionamiento de filas y columnas y la llamada a una de las listas de los contenidos recuperados mediante el script de acceso a los registros.

Documento. Aquí tienes acceso al script comentado en la entrada. Con él finalizamos un recorrido por posibles opciones de trabajo con Python en el proceso de automatización de la evaluación. Pero hay más... más adelante.

No hay comentarios:

Publicar un comentario

Comenta esta entrada