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 un dtype (data type) espec铆fico. La funci贸n astype 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谩metro copy. La sintaxis es la siguiente:
DataFrame.astype(dtype, copy=True, errors='raise')

Donde:

  • dtype: Es el tipo de dato, o diccionario de la forma nombre de columna -> tipo de dato.
  • copy: Por default astype siempre retorna un nuevo objeto. Si copy se define como False, 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 el dtype proporcionado. El valor por default es raise, lo cual indica que las excepciones ser谩n propagadas a la funci贸n que invoca astype.

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

change data type fig1

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:

  1. 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).

  1. 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.

  1. 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.

  1. 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_idnameagegrade
1Ava673.0
2Kate1587.0

Retornar谩:

student_idnameagegrade
1Ava673
2Kate1587

Implementaci贸n

import pandas as pd


def changeDatatype(students: pd.DataFrame) -> pd.DataFrame:
    return students.astype({'grade': int})

slackmart blog 漏 2025