Función Pandas DataFrame.astype()

Minahil Noor 30 enero 2023
  1. Sintaxis de pandas.DataFrame.astype():
  2. Códigos de ejemplo: Método DataFrame.astype() para cambiar el tipo de datos de una columna
  3. Códigos de ejemplo: Método DataFrame.astype() para cambiar el tipo de datos de todas las columnas del DataFrame
  4. Códigos de ejemplo: Método DataFrame.astype() para cambiar el tipo de datos con excepción
Función Pandas DataFrame.astype()

La función Pandas DataFrame.astype() cambia el tipo de datos de los objetos a un tipo de datos especificado.

Sintaxis de pandas.DataFrame.astype():

DataFrame.astype(dtype, copy=True, errors="raise")

Parámetros

dtype Tipo de datos que queremos asignar a nuestro objeto.
copy Un parámetro booleano. Devuelve una copia cuando True.
errors Controla el lanzamiento de excepciones sobre datos no válidos para el tipo de datos proporcionado. Tiene dos opciones.
raise: permite que se levanten las excepciones.
ignore: suprime las excepciones. Si existe un error, entonces devuelve el objeto original.

Retorna

Devuelve el DataFrame con los tipos de datos fundidos.

Códigos de ejemplo: Método DataFrame.astype() para cambiar el tipo de datos de una columna

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                        'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                        'Obtained Marks': {0: 90, 1: 75, 2: 82, 3: 64, 4: 45}})

print("The Original Data Types of the Data frame are: \n")
print(dataframe.dtypes)

dataframe1 = dataframe.astype({'Attendance': 'int32'}).dtypes
print("The Modified Data Types of the Data frame are: \n")
print(dataframe1)

Producción:

The Original Data Types of the Data frame are: 

Attendance         int64
Name              object
Obtained Marks     int64
dtype: object
The Modified Data Types of the Data frame are: 

Attendance         int32
Name              object
Obtained Marks     int64
dtype: object

La función ha devuelto el tipo de datos fundido. Hemos utilizado la función dtypes() para mostrar los tipos de datos de las columnas del DataFrame.

Códigos de ejemplo: Método DataFrame.astype() para cambiar el tipo de datos de todas las columnas del DataFrame

Vamos a intentar cambiar el tipo de datos del DataFrame dado.

import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                        'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                        'Obtained Marks': {0: 90, 1: 75, 2: 82, 3: 64, 4: 45}})
print("The Original Data Types of the Data frame are: \n")
print(dataframe.dtypes)

dataframe1 = dataframe.astype('object').dtypes
print("The Modified Data Types of the Data frame are: \n")
print(dataframe1)

Resultado:

The Original Data Types of the Data frame are: 

Attendance         int64
Name              object
Obtained Marks     int64
dtype: object
The Modified Data Types of the Data frame are: 

Attendance        object
Name              object
Obtained Marks    object
dtype: object

La función ha devuelto el DataFrame modificado. Ha cambiado el tipo de datos de todas las columnas a object.

Códigos de ejemplo: Método DataFrame.astype() para cambiar el tipo de datos con excepción

Ahora estableceremos el tipo de datos object a int32. La función ignorará la excepción ya que pasaremos el parámetro errors= 'ignore'.

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                        'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                        'Obtained Marks': {0: 90, 1: 75, 2: 82, 3: 64, 4: 45}})

print("The Original Data Types of the Data frame are: \n")
print(dataframe.dtypes)

dataframe1 = dataframe.astype('int32', errors='ignore').dtypes
print("The Modified Data Types of the Data frame are: \n")
print(dataframe1)

Resultado:

The Original Data Types of the Data frame are: 

Attendance         int64
Name              object
Obtained Marks     int64
dtype: object
The Modified Data Types of the Data frame are: 

Attendance         int32
Name              object
Obtained Marks     int32
dtype: object

Observe que la función no ha lanzado ninguna excepción. Ha ignorado el error ya que estábamos convirtiendo el object en int32. Simplemente no ha cambiado el tipo de datos de la columna Name.

Artículo relacionado - Pandas DataFrame