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](../../blog-images/2884-modify-columns-fig1.png)
Esta línea modifica la columna salary
del DataFrame employees
al duplicar cada valor. Veamos el paso a
paso:
- 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 |
- 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 |
- 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