Pandas caso cuando

Pandas Caso Cuando



Cuando se cumple o cumple una condición, una declaración de caso en el lenguaje pandas proporciona una salida o devuelve un valor. Una declaración de caso hace posible comparar el valor de una variable con un rango de valores potenciales. Cuando se hace referencia al conjunto de valores o se pasa en la declaración de caso, cada valor dentro del conjunto es verificado por los casos o condiciones dentro de la declaración. También podemos usar la declaración if-else para hacer la misma operación. Si una determinada condición es verdadera, la declaración if-else hace que se ejecute una secuencia de comandos. La declaración if-else dice que se realice esto si la condición es verdadera y que se haga eso si no lo es. En este tutorial, realizaremos diferentes operaciones mediante el uso de sentencias case y sentencias if-else.

¿Cómo usar la declaración de caso de Pandas?

Las declaraciones de caso se pueden crear de varias maneras. La función NumPy where(), que emplea la siguiente sintaxis fundamental, es la forma más sencilla de construir una declaración de caso en un DataFrame de Pandas:

d.f. [ 'nombre de columna' ] = np.donde ( condición 1 , 'valor1',
np.donde ( condición 2 , 'valor2',
np.donde ( condición 3 , 'valor3', 'valor4' ) ) )







La declaración anterior verificará el valor de cada condición y, si se cumple la condición, generará la salida o devolverá el valor contra la condición.



Ejemplo # 1: declaración de caso de Pandas usando la función where ()

Primero creemos un marco de datos para que podamos usar nuestra declaración de caso. Para crear el marco de datos, primero importaremos los módulos numpy y pandas para poder usar sus funcionalidades. El pd.Dataframe() se utilizará para crear nuestro marco de datos.







Hemos creado el marco de datos 'df'. Un diccionario de Python se pasa dentro de las funciones pd.DataFrame() como un argumento con claves y valores. Usaremos la función print() para ver nuestro marco de datos.



En el marco de datos 'df' tenemos dos columnas 'nombre' y 'marcas' con valores ['Ron', 'Tim', 'Anna', 'Jack', 'Rob', 'Lucy'] y [4, 6 , 8, 6, 9,10] respectivamente. Supongamos que el nombre son las columnas que almacenan los nombres de los estudiantes y la columna 'notas' almacena el puntaje de alguna prueba reciente. Ahora, escribiremos una declaración de caso que agrega una nueva columna llamada 'observaciones' cuyos valores se basan en los valores especificados por nosotros, para cada condición.

El método “numpy.where()” proporciona los índices de elementos de una matriz, columna o lista de entrada que satisfacen la condición especificada. En el caso de cambio anterior, la función np.where() verifica cada elemento en las columnas de 'marcas'. Si el valor es igual o inferior a 5, devolverá 'fail' como salida. Si el valor es menor o igual a 7, devolverá satisfactorio, y si el valor es menor o igual a 9, devolverá 'excelente'. Si no hay ninguno, el resultado será excelente.

Como se puede notar, la nueva columna 'comentarios' se crea en nuestro marco de datos 'df', almacenando los valores devueltos por la declaración del caso anterior.

Ejemplo # 2:

Intentemos la declaración del caso anterior nuevamente con un marco de datos diferente. Supongamos que tenemos que calificar a los jugadores en función de sus goles totales en el torneo de fútbol anterior. Entonces, hagamos un marco de datos para almacenar registros de jugadores de fútbol.

Hemos pasado un diccionario con las claves 'nombre' y 'objetivos' dentro de la función pd.DataFrame() para crear nuestro marco de datos. Para imprimir nuestro marco de datos, usaremos la función de impresión.

Como se puede ver en el cuadro de datos anterior, tenemos dos columnas: 'nombre' y 'objetivos'. En el nombre de la columna, tenemos los nombres de los jugadores ['John', 'Marty', 'Clay', 'Nick', 'Mike', 'Alex', 'Tom', 'Rocky']. En la ‘columna’ de goles, tenemos el total de goles marcados por cada jugador en el torneo anterior. Ahora usaremos nuestra declaración de caso para calificar a estos jugadores en función de los goles que han marcado.

El caso anterior se crea usando la función where(). Dentro del caso, la función de declaración verifica cada elemento en las columnas de 'marcas' contra las condiciones. Si el valor de la columna 'objetivos' es igual o inferior a 5, devolverá 'C'. Si el valor de la columna 'objetivos' es igual o inferior a 9, devolverá 'B'. Devolverá una 'A' si el valor en la columna 'objetivos' es igual o superior a 10. Los valores devueltos por la declaración se almacenarán en la nueva columna 'calificación'. Imprimamos el 'df' para ver los resultados.

La nueva columna 'calificación' se crea con éxito utilizando el script anterior.

Ejemplo # 3: Sentencia if-else de Pandas usando la función apply()

El eje de fila o columna del marco de datos es utilizado por el método apply() para implementar una función. Podemos crear nuestra propia función definida y usarla en nuestro marco de datos en pandas. Incluirá condiciones if-else. Primero creemos nuestro marco de datos, luego crearemos una función en la que usaremos una declaración if-else para generar el resultado. Para crear nuestro marco de datos, primero importaremos el módulo de pandas, luego pasaremos un diccionario dentro del método pd.DataFrame().

Como puede verse, nuestro marco de datos se compone de dos columnas 'A' que almacenan valores numéricos [23, 35, 64, 74, 85] y 'B' con valores [45, 34, 61, 89, 27]. Ahora crearemos una función que determinará qué valor es mayor entre ambas columnas en cada fila de nuestro marco de datos.

Puede usar la función lambda de Python 'pandas. DataFrame.apply()” para ejecutar una expresión. En Python, una función lambda es una función anónima compacta que acepta cualquier número de argumentos y ejecuta una expresión. En el script anterior, hemos creado una declaración de condición que comparará el valor de ambas columnas y almacenará el resultado en la nueva columna de 'comparación'. Si el valor de la columna 'A' es menor que el valor de la columna 'B', devolverá 'B es mayor'. Si la condición no se cumple, devolverá 'A es mayor'.

Ejemplo # 4:

Probemos otro ejemplo usando la instrucción if-else dentro de la función apply() con otro marco de datos.

Supongamos que nuestro marco de datos almacena registros de empleados de alguna empresa. La columna 'emp' almacena los nombres de los empleados [“Franky”, “Harry”, “Luke”, “Peter”, “Andrew”], mientras que la columna 'salary' almacena los salarios de cada empleado [1350, 1000, 900 , 1200, 980] en el marco de datos 'df'. Ahora crearemos nuestra declaración if-else usando el método apply().

La condición anterior verificará cada valor en la columna 'salario' y agregará 200 a los salarios de los empleados donde el valor del salario sea menor o igual a 1000. Hemos almacenado los valores devueltos por la función apply() en la nueva columna ' incremento'. Veamos los resultados del script anterior.

Como puede ver, la función ha agregado con éxito 200 a los valores que eran menores o iguales a 100. Los valores que eran mayores a 1000 permanecieron sin cambios.

Conclusión:

En este tutorial, hemos visto que cuando se cumple la condición, una declaración de este tipo, llamada declaración de caso, devuelve un valor. Hemos visto cómo puede crear una declaración de caso para realizar una operación o tarea requerida. En este tutorial, hemos utilizado la función np.where() y la función apply() para crear declaraciones de casos. Implementamos algunos ejemplos para enseñarle cómo usar las declaraciones de casos de pandas usando la función where() y cómo usar la función apply() para crear declaraciones de casos.