Solución

Pandas

Vista general

Nuestro objetivo es modificar la columna salary en el DataFrame employees, de manera que el salario de cada empleado se duplique.

Conceptos clave:

  • Operaciones a nivel columna: son operaciones que se realizan en cada elemento individual de un DataFrame Series. Algunos ejemplos de tipos de operaciones a nivel columna son operaciones aritméticas, funciones de agregación, filtrado y operaciones condicionales, y operaciones sobre strings.

Intuición

Duplicamos el salario de cada empleado al multiplicar la columna salary por 2. En pandas, podemos aplicar operaciones a nivel columna, afectando cada elemeto en la columna.

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

Veamos la representación visual de las operaciones a nivel columna

modify columns fig1

Esta línea modifica la columna salary del DataFrame employees al duplicar cada valor. Veamos el paso a paso:

  1. employees[‘salary’]:

Así es como se accede a una columna específica de un DataFrame en pandas. employees es el DataFrame, y ['salary'] se refiere a la columna llamada “salary”. Devolverá una Serie pandas, que es un array unidimensional etiquetado.

Así, employees['salary'] te dará todos los valores de la columna salary del DataFrame employees.

Ejemplo:

Si tenemos el siguiente DataFrame:

name salary
Jack 19666
Piper 74754
Mia 62509
Ulysses 54866

employees['salary'] nos retorna:

index salary
0 19666
1 74754
2 62509
3 54866
  1. employees[‘salary’]

Pandas nos permite usar operaciones vectoriales. Cuando se multiplica una objeto Series por un valor escalar (un valor entero), pandas multiplica cada elemento en la Serie por ese número.

En nuestro caso, se está duplicando cada valor en la columna salary.

Ejemplo:

Usando el DataFrame anterior, employees['salary'] * 2 nos resultaría:

index salary
0 39332
1 149508
2 125018
3 109732
  1. employees[‘salary’] = …:

Esta línea actualzia los valores en una columna existente del DataFrame. Si la columna salary no existiese (por alguna razón), pandas la crearía.

En la sentencia employees['salary'] = employees['salary'] * 2, lo que estamos escencialmente haciendo es tomar cada valor de la columna salary, duplicarlo, y al final reemplazando el valor original con el valor calculado por cada elemento.

El DataFrame employees mantiene su columna salary, pero los valores de dicha columna ahora tendrán su valor original duplicado.

Implementación

import pandas as pd


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

slackmart blog © 2024