Soluci贸n

Pandas

Vista general

En este problema, tenemos un DataFrame llamado students que contine la informaci贸n de los alumnos. Sin embargo, los nombres de columna no son muy descriptivos. La meta es renombrarlos de manera que describan claramente los datos que almacenan.

Conceptos Clave:

  • DataFrame: una estructura bidimensional, similar a una hoja de c谩lculo o una tabla SQL. Cada fila representa un registro individual y cada columna un atributo diferente. Su tama帽o se puede redimensionar y est谩 dise帽ado para manejar una mezcla de distintos tipos de datos.

  • funci贸n rename: la funci贸n rename en pandas es una herramienta muy 煤til cuando se requiere renombrar columnas o nombres de 铆ndices.

Uso de rename:
DataFrame.rename(mapper=None, index=None,
                 columns=None, axis=None,
                 copy=True, inplace=False,
                 level=None, errors='raise')

El m茅todo rename tiene muchos argumentos opcionales que puede aceptar. Para nuestro prop贸sito, nos interesa el argumento columns, el cual nos permite pasar un diccionario donde las keys representan los nombres actuales de cada columna y los values son las nuevos nombres.

Por ejemplo, si tenemos:

{'id': 'student_id'}

Significa que estamos renombrando la columna "id" a "student_id".

Definici贸n de argumentos:
  • mapper, index, columns: Los diccionarios que la funci贸n rename acepta. En nuestro ejemplo, usamos coumns.
  • axis: Puede ser "index" o "columns". Determina si se est谩 renombrando el 铆ndice o las columnas. Por default, si se proporciona el argumento columns, se estara renombrando columnas.
  • copy: Si se define como True, se crea un nuevo DataFrame. Si es False, se modifica el DataFrame original.
  • inplace: Si se define como True, el renombrado modificar谩 el mismo DataFrame y no habr谩 valor de retorno. Si es False, un nuevo DataFrame con las columnas renombradas ser谩 retornado sin modificar el DataFrame original.
  • level: Para DataFrames con multi 铆ndices, level especifica el nivel desde el cual las columas deben ser renombradas.
  • errors: Si se define como 'raise', un error se genera si se intenta renombrar un elemento que no existe. Si se define como 'ignore', cualquier error para renombrar los elementos ser谩 ignorado.

Intuici贸n

Visualizaci贸n de la funci贸n rename

rename columns fig1

En la soluci贸n proporcionada:

  1. Primero importamos la libreria pandas y le asignamos el alias pd.
  2. Definimos una funci贸n renameColumns que toma un DataFrame students y retorna un DataFrame modificado.
  3. Dentro de la funci贸n, usamos el m茅todo rename del dataframe para renombrar las columnas. Pasamos un diccionario usando el argumento columns para especificar los nuevos nombres de cada columna.
  4. El DataFrame modificado es retornado.

Cuando se proporciona este DataFrame a la funci贸n:

id first last age
1 Mason King 6
2 Ava Wright 7
3 Taylor Hall 16
4 Georgia Thompson 18
5 Thomas Moore 10

Retornar谩:

student_id first_name last_name age_in_years
1 Mason King 6
2 Ava Wright 7
3 Taylor Hall 16
4 Georgia Thompson 18
5 Thomas Moore 10

Recuerda, esta funci贸n no cambia el DataFrame original, si no que retorna un nuevo DataFrame con las columnas renombradas. Si se desea modificar el DataFrame original, se puede especificar el argumento inplace=True.

Implementaci贸n

import pandas as pd


def renameColumns(students: pd.DataFrame) -> pd.DataFrame:
    students = students.rename(
        columns={
            "id": "student_id",
            "first": "first_name",
            "last": "last_name",
            "age": "age_in_years",
        }
    )
    return students

slackmart blog 漏 2024