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贸nastypeno 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 defaultastypesiempre retorna un nuevo objeto. Sicopyse 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 eldtypeproporcionado. 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})