Soluci贸n - Modifica el tipo de dato
Vista General
En este problema, tenemos un DataFrame llamado students
que contiene la informaci贸n de los alumnos. Sin
embargo, las calificaciones est谩n almacenadas como valores flotantes en vez de enteros. El objetivo es cambiar
el tipo de datos para las calificaciones a valores enteros.
Conceptos Clave:
- DataFrame: una estructura de datos bidimensional similar a una hoja de c谩lculo o una tabla SQL. Cada fila representa un registro individual y cada columna un atributo diferente. Es posible redimensionar y est谩 dise帽ada para almacenar una mezcla de diferentes tipos de datos.
- Funci贸n
astype
: es usada para transformar un objecto de pandas a undtype
(data type) espec铆fico. La funci贸nastype
no modifica el DataFrame original, sino que retorna un nuevo DataFrame con los cambios de tipo especificados. Si por alg煤n motivo se desea realizar los cambios en el DataFrame original, necesitar铆amos reasignar el resultado al objeto original o usar el par谩metrocopy
. La sintaxis es la siguiente:
DataFrame.astype(dtype, copy=True, errors='raise')
Donde:
dtype
: Es el tipo de dato, o diccionario de la formanombre de columna -> tipo de dato
.copy
: Por defaultastype
siempre retorna un nuevo objeto. Sicopy
se define comoFalse
, un nuevo objeto solo se crear谩 si el objeto original no puede ser convertido al nuevo tipo de dato solicitado.errors
: Controla c贸mo se deben manejar las excepciones o informaci贸n no v谩lida para eldtype
proporcionado. El valor por default esraise
, lo cual indica que las excepciones ser谩n propagadas a la funci贸n que invocaastype
.
De manera que en nuestro caso, nos interesa convertir la columna grade
de float
a int
, asi que podemos
hacerlo de la siguiente forma:
students = students.astype({'grade': int})
Intuici贸n
Visualizaci贸n de la funci贸n astype
En la soluci贸n proporcionada:
students = students.astype({'grade': int})
Esta l铆nea convierte la columna grade
de float
a int
.
Vayamos en el paso a paso:
- Importar pandas:
import pandas as pd
Esta l铆nea importa la librer铆a pandas y le asigna como alias pd
. La libreria pandas proporciona estructuras
de datos r谩pidas, flexibles y expresivas, dise帽adas para trabajar con informaci贸n estructurada (tabular,
multidimencional y potencialmente heterog茅nea).
- Definici贸n de la funci贸n:
def changeDatatype(students: pd.DataFrame) -> pd.DataFrame:
Esta l铆nea define una funci贸n llamada changeDatatype
que toma el DataFrame students
como un argumento y
retorna otro DataFrame.
- Cambiar el tipo de datos de una columna:
students = students.astype({'grade': int})
Esta l铆nea de c贸digo representa el coraz贸n de la soluci贸n. Ya que cambia el tipo de dato de la columna grade
a int
usando la funci贸n astype
. El {'grade': int}
es un diccionario donde especificamos la columna grade
y su nuevo tipo de datos.
- Sentencia de retorno:
return students
Esta l铆nea retorna el DataFrame modificado.
Usando la soluci贸n
Cuando pasamos este DataFrame a la funci贸n:
student_id | name | age | grade |
---|---|---|---|
1 | Ava | 6 | 73.0 |
2 | Kate | 15 | 87.0 |
Retornar谩:
student_id | name | age | grade |
---|---|---|---|
1 | Ava | 6 | 73 |
2 | Kate | 15 | 87 |
Implementaci贸n
import pandas as pd
def changeDatatype(students: pd.DataFrame) -> pd.DataFrame:
return students.astype({'grade': int})