1
resposta

pd.to_numeric ou .astype(np.float64)

Bom dia?

Fiquei com uma duvida, porque utilizar o .astype(np.float64) que ao meu ver é uma forma de forçar a mudança dos dados e caso tenha alguma linha onde tenha um caracter de erro e pare o processo, e temos de carregar a Numpy, se podemos utilizar a pd.to_numeric(..., errors='coerce').

Acredito que o ganho do .astype venha quando sabemos que o numero não precisa ter o tamanho em 64 e podemos reduzi-lo pra 32 e economizar memória (mas isso em dataframes muito grandes), para aplicações muitos específicas onde vamos utilizar o Numpy parar cálculos ou ML, tem algum outro ganho?

1 resposta

Olá, Davi, tudo bem?

O método .astype() é uma forma direta de converter o tipo de dados de uma coluna em um DataFrame. Ele é utilizado quando temos certeza de que todos os dados na coluna podem ser convertidos para o tipo desejado, como np.float64. Mas, como você mencionou, se houver qualquer valor que não possa ser convertido, como caracteres não numéricos, o .astype() irá gerar um erro.

Por outro lado, o método pd.to_numeric() com o parâmetro errors='coerce' é utilizado m situações onde você pode ter valores que não são convertíveis. Ele tentará converter os valores e, se não conseguir, substituirá esses valores problemáticos por NaN. O que é interessante quando estamos lidando com dados que podem ter entradas sujas ou inesperadas.

Quanto ao uso de np.float32 ou np.float64, a escolha entre eles geralmente depende do tamanho do seu dataset e da precisão necessária para suas operações. np.float32 usa menos memória, o que pode ser benéfico para grandes datasets, mas np.float64 oferece maior precisão, o que pode ser crítico para cálculos científicos ou financeiros.

Então, se você está lidando com dados que podem ter valores não numéricos e quer evitar interrupções no processo de conversão, pd.to_numeric(..., errors='coerce') é uma escolha mais segura. Mas, se você tem certeza da consistência dos dados, .astype() pode ser empregado.

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Para saber mais:

Sugestão de conteúdo:

DOCUMENTAÇÃO
astype
DOCUMENTAÇÃO
to_numeric
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!