Buscar este blog

viernes, 19 de marzo de 2021

USANDO FUNCION case_when en lugar de condicional IF/ELSE

Este tutorial le mostrará cómo usar la función case_when en R para implementar lógica condicional en lugar de  if / else ó if / elif / else.

Supongamos que tenemos las calificaciones de un grupo estudiantes en un curso de quimica. Estos estudiantes toman un examen cuya calificación va de 0 a 100. Según el puntaje de la prueba, cada estudiante obtendrá una calificación en número (0-100) y una letra(A;B;C;D;F) siguiendo la siguientes reglas (escala):

Si la puntuación es mayor o igual a 90, asigne una "A"

De lo contrario, si la puntuación es mayor o igual a 80, asigne una "B"

De lo contrario, si la puntuación es mayor o igual a 70, asigne una "C"

De lo contrario, si la puntuación es mayor o igual a 60, asigne una "D"

De lo contrario, asigne una "F"

En difinitiva queremos llegar a una tabla como esta:


comencemos creando un vector con laas calificaciones nmericas:

test_score_vector <- c(94,90,88,75,66,65,45)

> test_score_vector
[1] 94 90 88 75 66 65 45

Ahora usaremos la funcion case_when para convertir esas calificaciones numericas en aprobado/reprobado

Primero veamos un ejemplo simple de sintaxis.

Podemos usar case_when para implementar un tipo simple de lógica, donde la función solo prueba una condición única y genera un valor si esa condición es VERDADERA. (TRUE)

Para hacer esto sintácticamente, simplemente escribimos el nombre de la función: case_when ().

Luego, dentro del paréntesis, hay una expresión con un "lado izquierdo" y un "lado derecho", que están separados por una tilde (~).
En nuestro caso podemos escribir:

> case_when(test_score_vector >= 60 ~ 'APRB'
+           ,TRUE ~ 'REPRO'
+ )
[1] "APRB"  "APRB"  "APRB"  "APRB"  "APRB"  "APRB"  "REPRO"

Comparemos con:
test_score_vector <- c(94,90,88,75,66,65,45)

Puede notarse que cuando un valor del vector test_score_vector  es  mayor a 60 se obtiene un APRB (APROBADO) y si es menor REPRO (REPROBADO)

Entonces la función case_when ha recorrido el vector test_score_vector elemento por elemento y ha asignado el valor APRB si el elemnto es mayor o igual a 60 (lado izquierdo del código (test_score_vector >= 60 ~ 'APRB' ,TRUE ~ 'REPRO'). Si no se cumple esa condición asigna REPRO

CASO MAS COMPLEJO

USAMOS CASE_WHEN PARA REALIZAR IF-ELIF-ELSE

A continuación, usaremos case_when () en un vector de datos, test_score_vector, pero lo usaremos para probar varios casos y asignar los siguientes valores:

Si test_score_vector es mayor o igual que 90, asigne 'A'
De lo contrario, si test_score_vector es mayor o igual que 80, asigne 'B'
De lo contrario, si test_score_vector es mayor o igual que 70, asigne 'C'
De lo contrario, si test_score_vector es mayor o igual a 60, asigne 'D'
De lo contrario, asigne 'F'
Entonces vamos a usar case_when () como una declaración if-elif-else, aplicada a un vector de datos.


> case_when (test_score_vector>= 90 ~ 'A'
+            , test_score_vector>= 80 ~ 'B'
+            , test_score_vector>= 70 ~ 'C'
+            , test_score_vector>= 60 ~ 'D'
+            , TRUE ~ 'F'
+ )
[1] "A" "A" "B" "C" "D" "D" "F"

comparemos con el vector:

[1] 94 90 88 75 66 65 45

puede notarse la asignacion correcta de las calificaciones en letras

lunes, 1 de marzo de 2021

Seaborn: un buen modulo para visualización de datos en python?

 



La visualización de datos es extremadamente importante en la ciencia de datos.

Porque es importante te preguntaras?

Es necesario para casi todos los pasos del flujo de trabajo de la ciencia de datos.

Es fundamental en todos los niveles de trabajo de ciencia de datos, pero especialmente en los niveles junior e intermedio.

Ya sea que esté haciendo exploración de datos, análisis de datos, búsqueda de información valiosa, narración de historias con datos o creando un modelo de aprendizaje automático, probablemente necesitará usar la visualización de datos. Por lo tanto, debes darle  al aprendizaje de visualización de datos de   una alta prioridad.

En mi opinion Seaborn es la mejor opción en este momento para la visualización de datos estadísticos en Python.

Por que?

1) SEABORN ES FÁCIL DE USAR

La principal razón por la que me gusta Seaborn es que es fácil de usar.

En Seaborn, las visualizaciones estadísticas más comunes se pueden crear con una línea simple o unas pocas líneas de código.

Por ejemplo, si desea crear un diagrama de dispersión en Seaborn, una vez que tenga sus datos, el diagrama en sí es muy fácil de crear.

 >>>sns.scatterplot (data=, x=, y =)

LA SINTAXIS DE SNS.SCATTERPLOT

La sintaxis para crear un diagrama de dispersión de Seaborn es bastante sencilla.

En el caso más simple, puede llamar a la función, proporcionar el nombre del DataFrame y luego las variables que desea poner en el eje x e y. Puede pasar el nombre del DataFrame al parámetro de datos y pasar las variables al parámetro x y al parámetro y. (Te mostraré un ejemplo claro de esto en la sección de ejemplos).

Lo primero que hay que hacer es importar el modulo Seaborn con la función import

>>>import seaborn as sns

Para realizar un diagrama de dispersión (“scatterplot” en ingles) la sintaxis (código) es simple. El método a usar es “scatterplot”

>>>sns.scatterplot (data=, x=, y =)

Como puede verse, puede crear un diagrama de dispersión simple con solo 3 parámetros.

data = dataframe con los datos

x = la vriable que se quiere colocar en el eje x

y = la variable que se quiere colocar en el eje y


Así pues con este simple código:

>>>sns.scatterplot (data=, x=, y =)

se puede creear un grafico como el que se muestra en este post.



 

 

 

Las funciones de Seaborn están bastante bien diseñadas, son fáciles de entender y de usar.

USANDO FUNCION case_when en lugar de condicional IF/ELSE

Este tutorial le mostrará cómo usar la función case_when en R para implementar lógica condicional en lugar de  i f / else ó if / elif / els...