Solución

Pandas

Vista general

Este problema nos pide crear una nueva columna ‘bonus’ en el DataFrame employees. La nueva columna debe contener el doble del sueldo de cada empleado.

Conceptos clave:

  1. pandas Series: una estructura de datos dimensional. Podemos imaginar a una serie como una columna de información en un DataFrame. Una serie puede contener un amplio rango de tipos de datos. Al igual que los DataFrame, las series son indexadas y pueden ser etiquetadas para su fácil consulta.
  2. pandas DataFrame: son similares a una tabla SQL, un DataFrame es una colección de Series mostradas como columnas. Se pueden redimensionar, lo cual significa que podemos agregar, eliminar, y modificar la información contenida (filas y columnas).
  3. operaciones a nivel columna: son operaciones que pueden ser aplicadas sobre cada elemento individual en una serie de un DataFrame. Algunos ejemplos de tipos de operaciones a nivel columna son: operaciones aritméticas, funciones de agregación, operaciones de filtrado, y operaciones sobre cadenas de texto (strings).

Intuición

Para resolver este problema, podemos crear una nueva columna y calcular la gratificación usando una operación a nivel columna (*) para multiplicar la columna del sueldo por 2.

La forma más simple para crear una nueva columna es asignar la nueva columnas al dataframe employees usando el nombre de la columna. Enseguida, le asignamos el valor del sueldo multiplicado por dos.

Visualización de las operaciones a nivel columna

create a new column fig1

Ejemplo: SI tenemos el siguiente DataFrame:

name salary
Piper 4548
Grace 28150

employees['salary'] nos dice:

index salary
0 4548
1 28150

pandas nos permite realizar operaciones vectoriales. Cuando multiplicamos una Series por un valor escalar (un número), pandas multiplica cada elemento por ese número. En nuestro caso, queremos obtener el doble de cada valor en la columna salary.

Usando el previo DataFrame, employees['salary'] * 2 resultaría en:

index bonus
0 4548
1 56300

Asignamos esos valores a una nueva (o existente) columna en el DataFrame. Si la columna bonus no existe aún, pandas la creará.

Cuando hacemos

employees['bonus'] = employees['salary'] * 2

, estamos creando una nueva columna llamada bonus en el DataFrame employees, y le estamos asignando el salario de cada empleado multiplicado por dos.

Implementación

import pandas as pd


def createBonusColumn(employees: pd.DataFrame) -> pd.DataFrame:
    employees['bonus'] = employees['salary'] * 2
    return employees

slackmart blog © 2024