Reduzindo o uso da memória no pandas

O @NetoFerraz compartilhou :pray: um artigo com uma dica interessante :bulb: e importante para economizar o uso da memória ao usar o pandas, especialmente para trabalhar com arquivos muito grandes e pesados :moyai:, sem travar a máquina :bomb:: usar o tipo category em vez de object, para strings que se repetem muitas vezes no DataFrame.

No artigo, só faltou dizer que já se pode especificar, na leitura do arquivo, que quer que determinada coluna seja interpretada como uma categoria:

df = pd.read_csv('dados.csv', dtype={'col1':'category'})

Assim, não se gasta memória à toa para depois converter, mas sim já se lê o arquivo gastando menos memória. :sparkles:

4 Curtidas

Saiu a segunda parte da série “como otimizar o consumo de memória usando o Pandas”, do Rodolfo Viana, mais uma vez compartilhada pelo @NetoFerraz, com mais dicas :bulb: para usar menos memória e, assim, conseguir fazer caber mais dados na memória disponível.

Desta vez, ele mostra como usar menos memória para armazenar os números inteiros, que por padrão são armazenados no Pandas como int64. Reduzindo o range possível das variáveis inteiras, é possível economizar uma quantidade significativa de memória.

2 Curtidas

Para colaborar ainda mais com essa questão da otimização de uso de memória, o Jeremy Howard fala justamente sobre o uso de diversos tipos de integer e float ao trabalhar com pandas na Aula 3 do curso de Machine Learning da fast.ai. Por volta de 15:20 do vídeo ele começa a explanar sobre isso.

O próprio Jeremy recomenda utilizar o formato Feather para trabalhar com arquivos que precisam ser carregados com frequência em memória. Abaixo um artigo que apresenta algumas métricas comparativos do formato Feather e outras alternativas, inclusive, o famoso .csv

2 Curtidas

Sobre uso de tipos corretos ao trabalhar com pandas, compartilho mais uma dica preciosa do Kevin Markham.

https://twitter.com/justmarkham/status/1192794326763474944