terça-feira, 20 de abril de 2021

Python - Utilizando o método astype() para converter o tipo de dados de uma Series pandas

O método astype() do pandas é um dos métodos mais importantes. É usado para alterar o tipo de dados de uma série. Quando o DataFrame é feito de um arquivo csv, as colunas são importadas e o tipo de dados é definido automaticamente, o que muitas vezes não é o que deveria. Por exemplo, uma coluna de salário pode ser importada como string, mas para fazer as operações temos que convertê-la em float.

astype() é usado para fazer tais conversões de tipo de dados.

Sintaxe: DataFrame.astype(dtype, copy=True, errors=’raise’)

Parâmetros:

  • dtype: Tipo de dados para o qual converter a série. (por exemplo str, float, int)
  • copy: Faz uma cópia do dataframe/série.
  • errors: Erro ao aumentar a conversão para tipo de dados inválido. Por exemplo, dict to string. 'raise' aumentará o erro e 'ignore' passará sem aumentar o erro.

Tipo de retorno: Series com os tipos de dados alterados.

Para baixar o conjunto de dados usado no exemplo a seguir, clique aqui.

Nos exemplos a seguir, o DataFrame usado contém dados de alguns jogadores da NBA. A imagem do DataFrame antes de qualquer operação é anexada abaixo.

Exemplo: Neste exemplo, o DataFrame é importado e .dtypes é chamado no DataFrame para visualizar os tipos de dados das séries. Depois disso, algumas colunas são convertidas usando o método .astype() e os dtypes são exibidos novamente para ver as mudanças.

# importa o modulo pandas
import pandas as pd

# Criar um DataFrame a partir de um arquivo csv
data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")

# Descarta valores null para evitar erros
data.dropna(inplace = True)

# Guardando dtype antes de converter
before = data.dtypes

# Convertendo dtype para inteiro
data["Salary"] = data["Salary"].astype(int)
# Convertendo dtype para string
data["Number"] = data["Number"].astype(str)

# Guardando dtype depois de converter
after = data.dtypes

# imprimindo o antes e depois da converção
print("Depois da converção\n", before, "\n")
print("Antes da converção\n", after, "\n")

Conforme mostrado na saída abaixo, os tipos de dados das colunas foram convertidos de acordo.

Depois da converção
 Name         object
Team         object
Number      float64
Position     object
Age         float64
Height       object
Weight      float64
College      object
Salary      float64
dtype: object 

Antes da converção
 Name         object
Team         object
Number       object
Position     object
Age         float64
Height       object
Weight      float64
College      object
Salary        int64
dtype: object

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Pandas Series.astype() to convert Data type of series.

Licença

0 comentários:

Postar um comentário