Mostrando las entradas con la etiqueta fórmulas. Mostrar todas las entradas
Mostrando las entradas con la etiqueta fórmulas. Mostrar todas las entradas

domingo, 27 de febrero de 2022

Como crear un índice a partir de una columna de datos de un DataFrame en Python

Cuando trabajamos con base de datos sin tener privilegios para crear procedimientos almacenados y funciones, es muy probable que los resultados de nuestras consultas siempre sean archivos CSV que contienen miles de datos y nos veamos forzados a trabajarlos en una hoja de cálculo creando ya sea tablas dinámicas, fórmulas, o bien validando datos todas estas opciones son relativamente sencillas para quienes tienen conocimientos más allá de lo básico en el manejo de hojas de cálculo, pero en ocasiones para los usuarios de nivel intermedio, el crear informes personalizados o procesar los datos de forma manual cada vez que piden un nuevo informe llega a ser una tarea engorrosa que consume muchas horas y en ocasiones hasta días, quedándose corta la funcionalidad de las hojas de cálculo y poniendo en entredicho nuestra productividad. Al llegar a este límite, los usuarios avanzados buscan como hacer las cosas en el menor tiempo posible y una forma de lograrlo es encontrar un lenguaje de programación que permita manipular los datos de forma automatizada y crear una hoja de Excel a la cual ya solo haya que darle un formato elegante para presentar la información, esto nos hace más productivos y nos permite dedicar tiempo a funciones laborales más importantes que estar armando reportes con fórmulas, funciones y tablas dinámicas.

Los datos fuente son archivos CSV obtenidos de una consulta SQL.
FUente: elaboración propia.

Una de las características de los reportes administrativos es el hecho de que los miles de datos obtenidos en una consulta a BD por lo general deben ser sumarizados en informes que presentan la misma información de muchas maneras, por ejemplo, las estadísticas escolares y sus indicadores suelen presentar los datos por programa educativo y sexo, por turno y sexo, por grado y sexo, por modalidad y sexo, por edad y sexo, por índices de reprobación y sexo, por índices de aprovechamiento y sexo, discapacidades, etnias, lugares de nacimiento y lugares de procedencia, los mismos datos una y otra vez, organizados por programa educativo, modalidad y nivel  académico. Es aquí donde debemos comenzar a plantear como programaremos está construcción de estructuras de datos que nos presenten ya organizados los datos para ponerlos directamente en una hoja de cálculo sin necesidad de hacer nada más que ejecutar el programa y revisar el formato de la presentación, el primer y más importante paso es obtener los índices que nos permitirán sumarizar los datos: programas educativos, sexo, modalidad, nivel, turno,  etnias reportadas, discapacidades reportadas, procedencias reportadas y lugares de nacimiento reportados, mismos que podrían ser solo uno o varios en cada programa educativo, y que la función que se presentará en esta entrada del blog permitirá obtener para cada columna que deseemos usar como índice en un ciclo de sumarización de datos.

El primer paso consiste en importar la librería Pandas.
Fuente: elaboración propia.

Esta librería nos proporciona métodos para trabajar con archivos CSV y crear DataFrames a partir de ellos, mismos que posteriormente podemos manipular de forma fácil a través de los diversos métodos que implementan.

Esta función permite crear índices a partir de los valores contenidos en una columna de datos.
Fuente: elaboración propia.

La función que se presenta en la imagen antecedente permite que obtengamos una lista de valores que podemos usar como índice para clasificar datos en un DataFrame, por ejemplo si existe una columna estados con 4000 filas en las cuales están los datos de los estados de procedencia de 4000 personas, esta función nos permitiría obtener la cantidad de estados presentes en la columna y posteriormente con esta información podríamos recorrer toda la columna contando los elementos que coinciden con alguno de los índices localizados.

Aquí se muestra como se obtienen los datos y como se ordena el DataFrame, para facilitar que los índices estén en el orden deseado.
Fuente: Elaboración propia.
Para obtener los datos usaremos la función read_csv de los DataFrames de Panda, misma que nos permitirá obtener los datos de un archivo ".csv" que previamente hemos obtenido de una consulta a base de datos o de algún otro tipo de fuente como es un sistema de información o Excel.
El DataFrame creado a partir de CSV luce así ya ordenado de acuerdo a las columnas de interés, podemos ver que en la columna de la derecha esta el orden real de los datos en el archivo .csv.
Fuente: Elaboración propia.
Ordenar el DataFrame es una buena idea para que al obtener los índices ya no tengamos que implementar un algoritmo de ordenación por cuenta propia y ahorremos tiempo de programación. Lo siguiente será tomar la columna de interés, en este caso los nombre de los programas educativos.
Es importante observar que se selecciona solo una columna llamándola por su encabezado, y que se especifica que será una tupla y no una serie, ya que las series no poseen ciertas cualidades.
Fuente: Elaboración propia. 
Ya teniendo la tupla de los programas educativos haremos uso de la función diseñada y obtendremos los valores indice para las consultas de todos los programas educativos que nos permitirán procesar nuestros indices y tablas para crear un archivo de Excel.
La función la invocamos pasando la tupla que contiene la columna 'Prog_educ' del DataFrame "datos", y en la variable programas educativos quedarán los valores índice.
Fuente: Elaboración propia.
El resultado de esta función se almacena en la tupla programas educativos el cual contendrá la lista de todos los programas educativos presentes en la columna 'prog_educ' y que nos permitirá realizar las operaciones de cálculo necesarias para procesar los datos de los diferentes programas educativos y aplicar los cálculos sobre los datos.
Contar con el índice de programas educativos nos permitirá realizar bucles for para ir recabando la información pertinente de nuestro interés de forma fácil.
El uso de un bucle for nos permitirá ir tomando cada valor del índice de nuestro interés para realizar los cálculos de los diferentes indicadores solicitados como son cantidad de alumnos por sexo, indice de reprobación, alumnos de nuevo ingreso por programa educativo, egresados por programa educativo, aprovechamiento por programa educativo y demás métricas que sean de nuestro interés y que se puedan calcular a través de la manipulación de los valores contenidos en nuestra consulta y que pusimos de forma ordenada en el DataFrame denominado "datos".
Espero que esta pequeña contribución le permita a aquellos que inician en Python desde cero y sin capacitación dar sus primeros pasos y tomar confianza para ir usando los métodos más avanzados y eficientes que las múltiples librerías nos ofrecen. 
Termine por escribir esta pequeña contribución debido a que en mi caso no hallaba ningún material nivel cero con el uso de datos locales en Internet, solo ejemplos basados en datos obtenidos de la nube y con funciones de análisis estadísticos que aunque no dudo que sean importantes para la investigación, la realidad es que son poco significativas para el trabajo administrativo que muchos deseamos automatizar en nuestras oficinas cuando nos encargan informes y la elaboración de indicadores.
El obtener los valores índices es lo que nos permite generar los conteos que nos llevarán a la creación de los índices que por lo general son el tipo:

índice de reprobación = alumnos irregulares / alumnos inscritos * 100

índice de aprovechamiento = suma de promedios / número de alumnos

egresados por programa educativo = conteo de alumnos que tienen el 100% de avance al final del ciclo.

Y por lo general en el área administrativo no suelen emplearse los métodos que se usan para el análisis de datos científicos, pero Pandas puede usarse fácilmente para ordenar nuestros datos y permitirnos diseñar fórmulas para obtener la información que deseamos sin tener que recurrir al uso de fórmulas, funciones y tablas dinámicas que aunque facilitan mucho el trabajo, suelen tomarnos mucho y en muchos casos requieren un trabajo adicional para acomodar los datos exactamente como los requerimos. En mi caso, llegue al límite de lo que las tablas dinámicas podían hacer por mi y después de llegar a ese límite tenía que pasar muchas horas procesando datos en nuevas hojas de Excel y terminaba con archivos en los que había n pestañas para los indicadores solicitados y m pestañas para los datos fuentes ordenados o sumarizados de diferentes formas, usar programación para realizar el trabajo nos permite que el archivo generado contenga solo la información deseada ya procesada y una hoja dedicada a los datos fuentes en la cual quien quiera auditar podrá realizar los cálculos y agrupaciones que desee, teniendo nosotros la seguridad de que obtendrán los mismos resultados, ya que el correcto diseño y validación de nuestras fórmulas y funciones en nuestro programa nos da la certeza de los resultados correcto, y con el plus que todo el proceso estará listo en minutos y no en días.






 



martes, 19 de noviembre de 2019

Hoja de cálculo fórmulas

Las fórmulas y las funciones son las herramientas más poderosas de las hojas de cálculo, una función, no es más que una fórmula prediseñada que la hoja de cálculo pone a nuestra disposición para facilitar nuestro trabajo.
Las fórmulas son el mecanismo mediante el cuál podemos indicarle a la hoja de cálculo como obtener los resultados que son de nuestro interés, para automatizar nuestras tareas de cálculo de valores o búsqueda de los mismos.
El pode
Una fórmula se escribe siempre poniendo como primer elemento de contenido de la celda el signo de =, y posteriormente las constantes (números), los nombres de celdas, los símbolos matemáticos (+,-,*,/,^, etc.) o en su caso las funciones a utilizar.
En una hoja de cálculo podemos hacer desde sencillos cálculos como las sumas, restas, promedios, multiplicaciones y divisiones, hasta la implementación de cálculos complejos en una fórmula creada o bien haciendo uso de funciones prediseñadas con funciones muy específicas de ingeniería, contabilidad, matemáticas, etc.
Para poder sacar provecho de las funcionalidades ofrecidas por una hoja de cálculo, lo primero que debemos hacer es comprender cómo funcionan las celdas, las fórmulas y las funciones. Sin esta comprensión será bastante difícil que podamos sacar provecho de las hojas de cálculo.
En una hoja de cálculo se dispone de una serie de celdas formadas por la intersección de una columna y una fila, en la cual podemos almacenar cualquier tipo de dato válido (texto, número, fecha, hora, fórmula, función, referencia a celda/hoja/libro).
Las celdas se denomina en base a la columna y la fila, es decir primero se pone la letra correspondiente a la columna y después el número de la fila.
Elementos de trabajo en una hoja de cálculo: Columna, Fila, Celda 

Si bien el nombre de la celda se compone de dos elementos que se nombran como uno solo, no hay que olvidar que una parte es la columna y otra la fila, y que se pueden manejar de forma separada si es necesario, existen el las aplicaciones de hoja de cálculo ciertos caracteres que nos permiten al colocarlos antes del nombre de la fila o la columna influir en la forma en que se copian las fórmulas a otras ubicaciones; por omisión, cuando copiamos una fórmula y la pegamos en otra celda, la fórmula toma como componentes de si misma a las celdas que se ubican en la posición relativa de la nueva ubicación de las celdas que originalmente formaban parte de la fórmula origen.
Ejemplo del resultado de copiar una fórmula de una ubicación a otra.
Si la fórmula se copia hacia arriba o abajo las celdas implicadas en los cálculos se cambiarán respecto a su fila, si las celdas se copian hacia la derecha o la izquierda las celdas implicadas en los cálculos se cambiarán respecto a su columna.
Es importante tener esto en mente cuando el cálculo implica un rango de celdas inicial y final, como en el caso de las sumatorias o los conteos de valores y las búsquedas de información, ya que conforme copiemos las fórmulas, las celdas implicadas en los cálculos se ven afectadas y nuestros cálculos podrían ser incorrectos.
Es algo común que cuando empezamos a realizar ejercicios en Excel y nos enseñan a copiar las formulas ya sea con los atajos de teclado CTRL+C en la celda a copiar y CTRL+V en la celda destino, o bien poniendo el cursor del ratón en la esquina inferior derecha de la celda con la fórmula a copiar, haciendo clic sin soltarlo y arrastrándolo tantas celdas como deseemos tener copias de la fórmula, la fórmula se replicará hacia abajo actualizando las celdas implicadas en el cálculo en la forma antes mencionada, si el cálculo de la fórmula es sobre celdas ubicadas en la misma fila o columnas por lo general el cálculo será correcto.
Paso 1 (Copia de fórmulas en la misma columna) Escribir la fórmula en la primer celda, para este ejemplo la fórmula será la suma de la fila 1 en las columnas A y B en la columna C.

Paso 2 (Copia de fórmulas en la misma columna) Copiarla a las celdas ubicadas en las filas inferiores es decir copiaremos la fórmula de C1 (=A1+B1) en C2, C3, C4, C5, C6, C7, C8, C9 es decir el rango C2:C9.

Resultado (Copia de fórmulas en la misma columna) Se tendrá la misma fórmula en todas las celdas de la columna que hayamos incluido en la acción de copiado, debe notarse que las celdas implicadas en la fórmula corresponden a la celdas ubicadas en las posiciones relativas a las de las implicadas en la fórmula original.
Paso 1 (copias de fórmulas en la misma fila) Se escribe la fórmula en la primer columna y posteriormente se copia a las columnas adyacentes necesarias

Paso 2 (Copia de fórmulas en la misma fila) El resultado es que la fórmula ubicada en A3 se copia a las celdas B3, C3, D3, E3 es decir el rango B3:E3. 

Resultado (Copia de fórmulas en la misma columna) Se tiene la misma fórmula en todas las celdas de la fila 3, debe notarse que las celdas implicadas en la fórmula corresponden a la celdas ubicadas en las posiciones relativas a las de las implicadas en la fórmula original.
Como vemos aquí el copiar la fórmula simplifica el trabajo con la hoja de cálculo, si nuestras fórmulas tienen este formato, el copiar las celdas entre filas y columnas nos será de gran utilidad para facilitar nuestras tareas, pero si las fórmulas no tienen este formato o requieren hacer uso de los mismos rangos independientemente de adonde se desea copiar la fórmula, entonces deberemos emplear el carácter especial del signo de moneda (dólar) $ para evitar que el nombre de la fila o la columna cambie, podemos elegir entre anclar solo la fila, solo la columna o anclar ambos al momento de escribir la primer fórmula, y cuando hagamos la copia eso nos permitirá evitar que nuestros cálculos se vean alterados al momento de realizar el copiado de la fórmula.
Paso 1 (copiado de fórmulas que no tienen las celdas en la misma fila o columna) podemos ver que al copiar la fórmula hacia abajo en la misma columna a partir de la segunda fila el resultado es incorrecto (cero).

Paso 2 (copiado de fórmulas que no tienen las celdas en la misma fila o columna) Al analizar la fórmula el error queda descubierto, las celdas H2, H3, H4, y H5 están vacías, dado que la celda que contiene el valor a usar es la H1, podría solucionarse escribiendo el mismo valor en cada una de las celdas vacías, pero eso sería incorrecto e implicaría escribir información innecesaria y más celdas que actualizar si el valor cambiara de 15% a otra cantidad, en vez de una sola celda habríamos de actualizar 5.

Paso 3 (copiado de fórmulas que no tienen las celdas en la misma fila o columna) Usando los caracteres de $ antes de el nombre de la columna y la fila al escribir la primer fórmula, solucionamos el problema y podemos copiar la fórmula sin preocuparnos de que exista error en los cálculos.

Resultado (copiado de fórmulas que no tienen las celdas en la misma fila o columna) El resultado de realizar la copia usando los símbolos $ son 5 fórmulas en las cuales la celda H1 es referida siempre y nuestros cálculos son correctos.

Detalle de las fórmulas correctamente escritas, debemos notar que la celda H1 no cambia al copiarse la fórmula dado que se ha indicado a  la hoja de cálculo que no debe de modificarse mediante el empleo de los símbolos de $ antes del nombre de la fila y la columna.

Esto funciona para filas y columnas, en el ejemplo presentado se requería que la celda elegida para almacenar el valor dado al IVA fuese referida siempre, pero existen ocasiones en las que al copiar la fórmula, queremos asegurarnos de que no cambie, solo la columna, o solo la fila, en esos casos se usará sólo un símbolo de $.
Se considera una fórmula, a todo aquello, que le indica a la hoja de cálculo realizar una operación sobre los datos contenidos en las celdas, las fórmulas son la forma más básica de emplear una hoja de cálculo, sin embargo son muy poderosas herramientas en las manos de personas que han comprendido la funcionalidad de las hojas de cálculo, las funciones tienen como objetivo evitar que perdamos nuestro valioso tiempo escribiendo fórmulas que son comúnmente utilizadas, o bien, evitar que cometamos errores en la escritura de fórmulas que son ampliamente conocidas.
Los detalles de la implementación de las fórmulas y su uso los podemos consultar en la ayuda en línea disponible para la aplicación de hoja de cálculo.

Funciones.

Las funciones son fórmulas prediseñadas que nos proporcionan las hojas de cálculo, para utilizar las funciones los primero que debemos saber de ellas es que cada una posee una sintaxis especial, que nos permitirá proporcionarle los datos con los cuales ha de trabajar, a estos datos se les denomina parámetros y pueden ser constantes como números o textos, variables como nombres de celdas o rangos de celdas, o incluso condiciones lógicas.
Los parámetros de tipo constante son valores como: 1, 10, -1, "Sí", "Ninguno".
Los parámetros de tipo variable son nombres de celdas como: A1, Z12, A1:A18.
Los parámetros de tipo condición lógica son expresiones como: A1<B1, A2>20, B4="Aprobado".
El uso de parámetros de tipo constante debe ser evitado siempre que sea posible, ya que usar constantes resta flexibilidad a las fórmulas que desarrollamos.
El uso de variables es altamente aconsejado ya sea en forma de referencias directas o bien referencia a rangos de fechas.
Los parámetros tipo condición no son opcionales para las fórmulas que así lo requieran y es importante que sepamos emplearlos con propiedad, lo primero que debemos comprender es como trabajan estas condiciones lógicas respecto al dato especificado:
> Mayor que - todos los valores mayores al indicado pero no él indicado.
< Menor que - todos los valores menores al indicado pero no él indicado.
>= Mayor o igual que - el valor indicado y todos los valores mayores a él.
<= Menor o igual que - el valor indicado y todos los valores menores a él.
<> Diferente - todos los valores excepto él indicado.
= Igual - solo él valor indicado.
Las funciones suelen en Excel tienen por regla general la siguiente sintaxis:
=NOMBREFUNCION(argumento1, argumento2, ... , argumentoN)
Donde cada argumento corresponde a un valor que le indica a la función los datos debe considerar, existen funciones que no requieren argumentos, funciones que solo aceptan un tipo de argumentos, funciones que requieren varios argumentos de distinto tipo.
Es importante que se revise la ayuda sobre la función que se va a emplear antes de utilizarla, ya que dependiendo del contexto existirán pequeñas variaciones en la forma en que manejan los datos. 
La caja de diálogo insertar función nos ofrece una pequeña guía las funciones disponibles y nos permite buscar por nombre de función o por tipo. En la parte inferior podemos leer una breve descripción de la sintaxis de la misma y su uso.
Para acceder a la caja de diálogo de funciones basta con hacer clic en el botón fx ubicado en la barra de fórmulas.
El botón insertar función nos permite tener acceso a la caja de diálogo correspondiente.
Otra forma de acceder a las funciones, es mediante la cinta de opciones denominada FÓRMULAS, en la cual podremos encontrar las diferentes categorías de fórmulas de acuerdo a su ámbito de aplicación aconsejado.
Pestaña de fórmulas, donde podemos observar las diferentes categorías de fórmulas disponibles en la aplicación, es importante notar que una misma función podría estar incluida en dos o más clasificaciones.
Se hace notar que las hojas de cálculo son una herramienta ofimática, muy empleada por las PyMES, pero también son un importante auxiliar para las grandes empresas, las cuales suelen tener sistemas de informacióin que generan archivos de salida en formatos de hoja de cálculo, o bien aceptan entrada de datos por lotes mediante hojas de cálculo preformateadas, con la finalidad de facilitar el uso por parte de sus usuarios.

Funciones más comunes

Entre las funciones más comunes que emplean los usuarios están: SUMA, MAX, MIN, PROMEDIO, SI, CONTAR, CONTARA, CONTAR.BLANCO, CONTAR.SI, SUMAR.SI, dependiendo de la versión de hoja de cálculo que usemos los nombres de las funciones podrían estar en otro idioma o bien, variar sutilmente, sin embargo, el resultado y la funcionalidad de las suele tener pocas variaciones.
Para separar sus argumentos las funciones pueden usar el símbolo de coma(,), o bien el símbolo de punto y coma (;), esto dependerá del carácter separador de decimales que esté definido en el sistema por la configuración del idioma, si el separador de decimales es la coma, el separador de argumentos será punto y coma, en caso de que el separador de decimales sea el punto, el separador de argumentos será la coma.