Como alterar o tipo de coluna em pandas (com exemplos)


As colunas de um DataFrame do pandas podem assumir um dos seguintes tipos:

  • objeto (strings)
  • int64 (inteiros)
  • float64 (valores numéricos com decimais)
  • bool (valores verdadeiros ou falsos)
  • datetime64 (datas e horas)

A maneira mais fácil de converter uma coluna de um tipo de dados para outro é usar a função astype() .

Você pode usar os seguintes métodos com a função astype() para converter colunas de um tipo de dados para outro:

Método 1: converter uma coluna em outro tipo de dados

 df[' col1 '] = df[' col1 ']. astype (' int64 ')

Método 2: converter várias colunas em outro tipo de dados

 df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. astype (' int64 ')

Método 3: converter todas as colunas em outro tipo de dados

 df = df. astype (' int64 ')

Os exemplos a seguir mostram como usar cada método na prática com o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' ID ': ['1', '2', '3', '4', '5', '6'],
                   ' tenure ': [12.443, 15.8, 16.009, 5.06, 11.075, 12.9546],
                   ' sales ': [5, 7, 7, 9, 12, 9]})

#view DataFrame
print (df)

  ID tenure sales
0 1 12.4430 5
1 2 15.8000 7
2 3 16.0090 7
3 4 5.0600 9
4 5 11.0750 12
5 6 12.9546 9

#view data type of each column
print ( df.dtypes )

object ID
tenure float64
dirty int64
dtype:object

Exemplo 1: Converter uma coluna em outro tipo de dados

O código a seguir mostra como usar a função astype() para converter a coluna de posse de um float em um inteiro:

 #convert tenure column to int64
df[' tenure '] = df[' tenure ']. astype (' int64 ')

#view updated data type for each column
print ( df.dtypes )

object ID
tenure int64
dirty int64
dtype:object

Observe que a coluna de posse foi convertida para int64 enquanto todas as outras colunas mantiveram seus tipos de dados originais.

Exemplo 2: Converter múltiplas colunas em outro tipo de dados

O código a seguir mostra como usar a função astype() para converter as colunas de ID e posse em inteiros:

 #convert ID and tenure columns to int64
df[[' ID ', ' tenure ']] = df[[' ID ', ' tenure ']]. astype (' int64 ')

#view updated data type for each column
print ( df.dtypes )

ID int64
tenure int64
dirty int64
dtype:object

Observe que as colunas ID e posse foram convertidas para int64.

Exemplo 3: Converter todas as colunas em outro tipo de dados

O código a seguir mostra como usar a função astype() para converter todas as colunas do DataFrame em um tipo de dados inteiro:

 #convert all columns to int64
df = df. astype (' int64 ')

#view updated data type for each column
print ( df.dtypes )

ID int64
tenure int64
dirty int64
dtype:object

Observe que todas as colunas foram convertidas para int64.

Nota : Você pode encontrar a documentação completa da função astype() do pandas aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras conversões comuns em pandas:

Como converter colunas Pandas DataFrame em strings
Como converter carimbo de data/hora em data/hora no Pandas
Como converter DateTime em data no Pandas
Como converter strings para flutuar no Pandas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *