Pandas DataFrame.astype() Função

Minahil Noor 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.astype():
  2. Códigos de exemplo: DataFrame.astype() Método para alterar o tipo de dados de uma coluna
  3. Códigos de exemplo: DataFrame.astype() Método para alterar o tipo de dados de todas as colunas da moldura de dados
  4. Códigos de exemplo: DataFrame.astype() Método para alterar o tipo de dados com excepção
Pandas DataFrame.astype() Função

Python Pandas DataFrame.astype() função altera o tipo de dados dos objectos para um tipo de dados especificado.

Sintaxe de pandas.DataFrame.astype():

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

Parâmetros

dtype Tipo de dados que queremos atribuir ao nosso objecto.
copy Um parâmetro booleano. Devolve uma cópia quando True.
errors Controla o levantamento de excepções sobre dados inválidos para o tipo de dados fornecidos. Tem duas opções.
raise: permite que sejam levantadas excepções.
ignore: suprime as excepções. Se existir um erro, então devolve o objecto original.

Devolver

Retorna a moldura de dados com os tipos de dados fundidos.

Códigos de exemplo: DataFrame.astype() Método para alterar o tipo de dados de uma coluna

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)

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     int64
dtype: object

A função devolveu o tipo de dados fundidos. Utilizámos a função dtypes() para mostrar os tipos de dados das colunas da moldura de dados.

Códigos de exemplo: DataFrame.astype() Método para alterar o tipo de dados de todas as colunas da moldura de dados

Tentaremos alterar o tipo de dados da moldura de dados em questão.

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

A função devolveu a moldura de dados modificada. Alterou o tipo de dados de todas as colunas para objecto.

Códigos de exemplo: DataFrame.astype() Método para alterar o tipo de dados com excepção

Agora vamos definir o tipo de dados object para int32. A função irá ignorar a excepção, pois passaremos o 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

Note-se que a função não levantou quaisquer excepções. Ignorou o erro ao lançarmos o object para int32. Apenas não alterou o tipo de dados da coluna Name.

Artigo relacionado - Pandas DataFrame