En lugar de leer directmente desde el teclado, en esta ocasión, supondremos que los datos se grabaron en un archivo plano. Lo leeremos desde allí usando pandas y lo dejaremos listo para ser procesado como lo hicimos en el ejemplo anterior.
Terminaremos con el procesamiento de datos leídos desde dos archivos de texto, de extensión csv (separados por ",") creados en Excel y grabados como texto "csv" y editado con el block de notas para que tenga un formato utf-8. En el primer archivo (personal.csv) hay 119 registros de empledos (7 campos o columnas). En el segundo archivo (planilla.csv) se encuentra la información de pagos. Ambos archivos tienen el campo Codigo que es usado como clave principal para acceder a la información de un empleado contenido en los dos archivos.
Entre las cosas que debemos realizar son:
Cargar a memoria las librerías numpy y pandas.
Leer los archivos desde la unidad D,de la carpeta pypage usando:
import pandas as pd
# Lectura del archivo personal.csv
dPersonal = pd.read_csv("d:\\pypage\\personal.csv",sep=",")
# Lectura del archivo planilla.csv
dPlanilla = pd.read_csv("d:\\pypage\\planilla.csv",sep=",")
#
Ahora extraemos las columnas (campos) hacia variables:
#
# Extraer campos del data.frame
# De Planilla
copl = dPlanilla.Codigo
bapl = dPlanilla.Basico
bopl = dPlanilla.Bonif
depl = dPlanilla.Descuentos
espl = dPlanilla.Estudios
nhpl = dPlanilla.NroHijos
pnpl = dPlanilla.PagoNeto
# De Personal
cope = dPersonal.CodEmpl
nope = dPersonal.Nombres
depe = dPersonal.Departamento
pupe = dPersonal.Puesto
sepe = dPersonal.Seccion
sape = dPersonal.SueldoAnual
fnpe = dPersonal.FechaNacimiento
fipe = dPersonal.FechaIngreso
# Crearemos dos diccionarios para ser manejdos como bases de datos que permita hacer concula para obtener información de ambos diccionarios
#
# Creación del diccionario de Personal
dPer = {}
j = -1
for i in cope:
j+=1
dPer[i] = [nope[j],depe[j],pupe[j],sepe[j],sape[j],fnpe[j],fipe[j]]
# Creación del diccionario de Planilla
dPla = {}
j = -1
for i in copl:
j+=1
dPla[i] = [bapl[j],bopl[j],depl[j],espl[j],nhpl[j],pnpl[j]]
#
Ahora pasamos a realizar las consultas e impresión de
- Algunos campos de los dos registros
- Información de los dos ciccionarios del empleado cuyo código se ingresó.
#
# Consultas por algunos empleados
# Algunos códigos que se pueden usar: 1011, 1012, 1041, 1055, 1284, 1923, 1675, 1785, 1975, 1987
#
cod = int(input("Ingrese el código\n(algunos: 1011, 1012, 1041, 1055, 1284, 1923, 1675, 1785, 1975, 1987): "))
# Impresión de algunos campos
reg = dPer.get(cod)[0]+", "+str(dPer.get(cod)[4])+", " + str(dPla.get(cod)[1])+", " + dPla.get(cod)[3]
print("\n\nRegistro: ",cod,": ",reg)
# Impresión del registro completo
print("\n\n\nInformación del empleado cuyo código es: ",cod,
"\nNombre: ",dPer.get(cod)[0],"\nDepartamento: ",dPer.get(cod)[1],
"\nPuesto: ",dPer.get(cod)[2],"\nSección: ",dPer.get(cod)[3],
"\nSueldo anual: ",dPer.get(cod)[4],"\nFecha ingreso: ",dPer.get(cod)[6],
"\nFecha nacimiento: ",dPer.get(cod)[5],
"\n\nBásico: ",dPla.get(cod)[0],"\nBonificación: ",dPla.get(cod)[1],
"\nDescuento: ",dPla.get(cod)[2],"\nEstudios: ",dPla.get(cod)[3],
"\nNro de hijos: ",dPla.get(cod)[4],"\nSueldo neto: ",dPla.get(cod)[5])
#
Las siguientes imágenes muestran el código
Y esta es la segunda
Ahora grabe su código o script para después ejecutarlo usando algún código que se sugiere en el input
Continuar en la siguiente sesión