Curso
A análise de dados costuma depender bastante da biblioteca indispensável pandas. Ela oferece estruturas de dados fáceis de usar e funções de manipulação que permitem trabalhar de forma eficiente com conjuntos de dados tabulares. Com pandas, você importa, limpa, transforma e agrega dados de várias fontes, como arquivos CSV, planilhas do Excel, bancos de dados SQL e muito mais.
Se você quer aprender a importar e limpar dados, calcular estatísticas e criar visualizações com pandas, confira nosso curso Data Manipulation with pandas.
Neste tutorial, vamos explorar a versão mais recente da biblioteca pandas, apresentando os novos recursos com exemplos práticos de uso.
A tão esperada atualização pandas 2.0 chegou
O pandas 2.0 foi lançado em 3 de abril de 2023, após três anos de desenvolvimento. Esta versão traz vários recursos novos, como suporte aprimorado a extension arrays, DataFrames com suporte a PyArrow e resolução de datetime além de nanossegundos. Porém, ela também aplica depreciações, resultando em mudanças na API.
Como uma atualização importante do Pandas, a versão 2.0 implementa todas as depreciações da linha 1.X. O lançamento mais recente, 1.5.3, tinha cerca de 150 avisos. Se o seu código não apresenta avisos na 1.X, ele deve ser compatível com a 2.0.
Os novos recursos do pandas 2.0
Veja o que há de novo no pandas 2.0 e como usar alguns dos recursos aprimorados.
Desempenho melhor: operações mais rápidas e eficientes em memória
O PyArrow pode ser considerado o grande destaque deste lançamento.
O pandas foi desenvolvido inicialmente usando estruturas de dados do NumPy para gerenciamento de memória, mas agora você pode optar por utilizar o PyArrow como formato de memória subjacente.
PyArrow é uma biblioteca Python (construída sobre o Arrow) que fornece uma interface para lidar com grandes volumes de dados usando as estruturas de memória do Arrow, além de ferramentas de serialização, compressão e integração com outros sistemas de processamento de dados como Apache Spark e Apache Parquet.
Arrow é um formato de dados colunar, de código aberto e independente de linguagem, para representar dados em memória. Ele é escrito em C++, mas é agnóstico em relação à linguagem.
O uso ineficiente de memória causado pelo back-end original do NumPy é um problema comum que leva muitos usuários a buscar ferramentas alternativas de processamento de dados, como Spark, Dask, Ray etc. Ao reduzir o consumo de memória com o back-end do PyArrow, o pandas agora oferece uma experiência mais enxuta e permite trabalhar com mais eficiência.
Benchmarks comparando operações de mean e replace usando os back-ends do NumPy e do PyArrow, além do Polars

Polars é uma biblioteca de manipulação de dados em Rust para Python que oferece uma API de DataFrame semelhante ao pandas, mas com desempenho e escalabilidade superiores para grandes conjuntos de dados. Para saber mais sobre a biblioteca Polars, confira o site oficial.
Aqui está um trecho de código para ler um arquivo CSV usando o PyArrow como back-end:
pd.read_csv(my_file, dytpe_backend='pyarrow')
Se você quer aprender técnicas eficientes em pandas para otimizar seu código em Python, confira o curso Writing Efficient Code with pandas na DataCamp.
Tipos de dados anuláveis agora são possíveis
Lidar com valores ausentes no pandas já foi desafiador por conta da falta de suporte do NumPy a nulos em alguns tipos de dados. Por exemplo, dtypes inteiros do NumPy não permitem valores nulos. Quando um valor nulo era inserido em uma coluna inteira, a coluna era automaticamente convertida para dtype float, o que não é ideal.
O pandas 1.0 introduziu dtypes anuláveis, mas exigia certo esforço para utilizá-los. Com a versão mais recente, ao ler dados em um DataFrame, você pode especificar o uso de dtypes anuláveis, deixando o processo bem mais simples.
pd.read_csv(my_file, use_nullable_dtypes=True)
Copy-on-Write para ganho de desempenho
Copy-on-Write é uma técnica de otimização de memória usada pelo pandas para aumentar o desempenho e reduzir o consumo de memória ao lidar com grandes volumes de dados. Isso aproxima o pandas do Spark no modo como operações preguiçosas são realizadas. Operações preguiçosas são aquelas que não executam imediatamente, esperando até que uma ação seja chamada para disparar o cálculo. Elas são "preguiçosas" porque adiam a execução até ser necessário computar e retornar o resultado final.
A ideia básica é gerar uma referência aos dados originais ao criar uma cópia de um objeto do pandas, como um DataFrame ou Series, e só criar uma nova cópia quando houver alguma modificação.
Essa abordagem permite que várias cópias do mesmo dado acessem a mesma memória até que ocorram mudanças, eliminando cópias redundantes, reduzindo significativamente o uso de memória e, assim, melhorando o desempenho.
Tipos numéricos do NumPy suportados por Index
No pandas 2.0, o recurso Index foi expandido para incluir dtypes numéricos do NumPy, como int8, int16, int32, uint8, uint16, uint32, uint64, float32 e float64; antes, apenas int64, uint64 e float64 eram suportados.
Essa atualização permite criar índices com tamanhos de bits menores, por exemplo, índices de 32 bits, em operações que antes produziam índices de 64 bits.
Agora, todos os índices numéricos são representados como Index com um dtype associado.
Instalando extras do pip
Ao especificar extras durante a instalação do pandas com pip, você pode instalar conjuntos adicionais de dependências opcionais. Por exemplo:
pip install "pandas[performance, aws]>=2.0.0"
Isso instalará as dependências opcionais performance e aws. O guia de instalação do pandas traz a lista de extras disponíveis. Inclui: [all, performance, computation, fss, aws, gcp, excel, parquet, feather, hdf5, spss, postgresql, mysql, sql-other, html, xml, plot, output_formatting, clipboard, compression e test]. Não se esqueça de adicionar aspas (" ).
Resolução além de nanossegundos em Timestamps
Por muito tempo, o pandas tinha a limitação de representar timestamps apenas com resolução em nanossegundos. Isso impedia representar datas anteriores a 21 de setembro de 1677 ou posteriores a 11 de abril de 2264. Essa limitação atrapalhava pesquisas que analisavam séries temporais por longos períodos.
Com o lançamento do pandas 2.0, foi adicionado suporte a outras resoluções, como segundo, milissegundo e microssegundo. Esse aprimoramento permite intervalos de tempo de até +/- 2,9e11 anos, cobrindo a maioria dos casos de uso.
Formatação consistente no parsing de datetimes
Antes, a função to_datetime() no pandas inferia o formato de cada elemento de forma independente, o que podia ser problemático quando se esperava consistência, mas a função alternava formatos entre elementos.
Embora isso funcionasse quando havia formatos de data mistos, causava problemas para muitos usuários.
No pandas 2.0, o parsing passou a usar um formato consistente determinado pelo primeiro valor não-NA. Você ainda pode especificar um formato; nesse caso, ele será utilizado.
Comportamento antigo:
ser = pd.Series(['13-01-2000', '12-01-2000'])
pd.to_datetime(ser)
Out[2]:
0 2000-01-13
1 2000-12-01
dtype: datetime64[ns]
Novo comportamento:
ser = pd.Series(['13-01-2000', '12-01-2000'])
pd.to_datetime(ser)
Out[43]:
0 2000-01-13
1 2000-01-12
dtype: datetime64[ns]
Exemplos reproduzidos da documentação oficial.
Compatibilidade e migração
Mudanças de API incompatíveis com versões anteriores são modificações na API de uma biblioteca que podem quebrar códigos ou integrações existentes. Isso pode incluir remoção ou renomeação de funções, classes ou parâmetros, ou alteração do comportamento esperado. Confira a lista de todas as breaking changes do pandas 2.0 na documentação de backward incompatible API changes.
Para atualizar a biblioteca pandas, basta executar este comando no seu terminal ou notebook:
pip install -U pandas
Comunidade e suporte
Confira as notas de lançamento completas do pandas 2.0
Você também pode usar nosso cheat sheet de pandas para data science como um guia rápido dos fundamentos da biblioteca de análise de dados em Python, com exemplos de código.

Cheat sheet da DataCamp. Fonte
Uma grande comunidade de contribuidores e um time menor de mantenedores desenvolvem coletivamente o pandas, um projeto open source impulsionado pela comunidade. A liderança do pandas está comprometida em construir uma comunidade positiva, inclusiva e aberta. Se você quer participar, confira o guia da comunidade de contribuidores do pandas.
Conclusão
O pandas 2.0 marca uma atualização importante na popular biblioteca de análise de dados, trazendo novidades como mais desempenho com PyArrow, tipos de dados anuláveis, otimização copy-on-write, suporte expandido a tipos numéricos do NumPy em índices e datetime com resolução além de nanossegundos.
Com essa atualização, o pandas consegue lidar com conjuntos de dados maiores usando memória de forma mais eficiente, oferecendo uma experiência mais fluida para o usuário.
Para aproveitar esses recursos, basta atualizar sua biblioteca pandas com o comando pip install -U pandas. A comunidade do pandas segue oferecendo suporte e recursos, incluindo cursos na DataCamp, para ajudar você a evoluir suas habilidades em análise de dados.
Aqui vão alguns tutoriais excelentes que podem ajudar na sua jornada para aprender análise de dados.


