Data Science

Dominando a Conversão de Tipos de Dados no Pandas

Spread the love

Pandas é uma poderosa biblioteca Python para manipulação e análise de dados. A gestão do tipo de dados é crucial para o processamento eficiente de dados. Este artigo explora vários métodos para mudar efetivamente os tipos de dados das colunas em seus DataFrames Pandas.

Sumário

1. Convertendo para Tipos Numéricos com pd.to_numeric()

A função pd.to_numeric() é ideal para converter colunas para tipos de dados numéricos (int, float). É particularmente útil quando se lida com colunas contendo representações de string de números, frequentemente encontradas ao importar dados.


import pandas as pd

data = {'col1': ['1', '2', '3', '4', '5'], 'col2': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)

df['col1'] = pd.to_numeric(df['col1'])
print(df.dtypes)

O parâmetro errors gerencia como os erros são tratados:

  • 'coerce': Valores inválidos se tornam NaN.
  • 'raise': Lança uma exceção para valores inválidos.
  • 'ignore': Ignora valores inválidos.

data = {'col1': ['1', '2', 'a', '4', '5']}
df = pd.DataFrame(data)
df['col1'] = pd.to_numeric(df['col1'], errors='coerce')
print(df)

2. Conversão de Tipo Flexível com astype()

O método astype() fornece uma abordagem geral para alterar tipos de dados. Você pode converter para praticamente qualquer tipo suportado (int, float, str, bool, datetime, etc.).


data = {'col1': [1, 2, 3, 4, 5], 'col2': [True, False, True, False, True]}
df = pd.DataFrame(data)

df['col1'] = df['col1'].astype(str)
df['col2'] = df['col2'].astype(int)
print(df.dtypes)

Cuidado: A conversão de tipo pode levar à perda de dados (por exemplo, truncar decimais ao converter float para int).

3. Inferência Inteligente de Tipo com infer_objects()

O método infer_objects() é útil para DataFrames com tipos de dados mistos em colunas “object”. Ele tenta inferir o tipo mais apropriado para cada coluna.


data = {'col1': ['1', 2, '3.14', 4], 'col2': ['A', 'B', 'C', 'D']}
df = pd.DataFrame(data)
df = df.infer_objects()
print(df.dtypes)

Nota: Dados inconsistentes podem impedir a inferência de tipo bem-sucedida.

4. Melhores Práticas para Conversão de Tipo de Dados

Sempre inspecione seus dados antes e depois da conversão para verificar as alterações e evitar resultados inesperados. Considere usar o método .info() para verificar os tipos de dados e valores ausentes. Trate erros potenciais graciosamente usando o parâmetro errors em pd.to_numeric() ou pré-processando seus dados para remover ou substituir valores problemáticos.

Deixe um comentário

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