Soluci贸n - Renombrear columnas
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贸nrenameen 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贸nrenameacepta. En nuestro ejemplo, usamoscoumns.axis: Puede ser"index"o"columns". Determina si se est谩 renombrando el 铆ndice o las columnas. Por default, si se proporciona el argumentocolumns, se estara renombrando columnas.copy: Si se define comoTrue, se crea un nuevo DataFrame. Si esFalse, se modifica el DataFrame original.inplace: Si se define comoTrue, el renombrado modificar谩 el mismo DataFrame y no habr谩 valor de retorno. Si esFalse, un nuevo DataFrame con las columnas renombradas ser谩 retornado sin modificar el DataFrame original.level: Para DataFrames con multi 铆ndices,levelespecifica 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
En la soluci贸n proporcionada:
- Primero importamos la libreria pandas y le asignamos el alias
pd. - Definimos una funci贸n
renameColumnsque toma un DataFramestudentsy retorna un DataFrame modificado. - Dentro de la funci贸n, usamos el m茅todo
renamedel dataframe para renombrar las columnas. Pasamos un diccionario usando el argumentocolumnspara especificar los nuevos nombres de cada columna. - 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