Comparação entre Arquivos XLSX, CSV e PARQUET para Trabalhar com Python

Johann Albino
4 min readOct 18, 2024

Ao trabalhar com grandes volumes de dados em Python, especialmente em projetos de ciência de dados ou engenharia de dados, a escolha do formato de armazenamento pode impactar significativamente a eficiência e a facilidade de manipulação dos dados. Três dos formatos mais comumente utilizados são XLSX, CSV e PARQUET. Cada um tem suas vantagens e desvantagens dependendo do cenário de uso. Este artigo explora as diferenças entre esses formatos e como trabalhar com cada um deles no Python.

Arquivo XLSX

O que é?
XLSX é um formato de arquivo proprietário do Microsoft Excel, amplamente utilizado em empresas e contextos corporativos. Ele permite armazenar planilhas com várias abas, formatações, gráficos e fórmulas.

Vantagens:

  • Fácil para usuários não técnicos: Como é amplamente utilizado em ferramentas como Excel e Google Sheets, é ideal para troca de informações com pessoas que não são especialistas em programação.
  • Formatação visual: O XLSX pode armazenar formatações de células, gráficos, fórmulas e outros elementos visuais, tornando-o uma boa escolha para relatórios.

Desvantagens:

  • Desempenho: Não é o formato mais eficiente para armazenar e manipular grandes volumes de dados, especialmente quando se trabalha com Python.
  • Tamanho: Arquivos XLSX tendem a ser maiores em comparação a formatos mais otimizados, como CSV e Parquet.
  • Dependência de biblioteca: Para trabalhar com arquivos XLSX no Python, é necessário instalar bibliotecas adicionais, como openpyxl ou pandas.

Como trabalhar com XLSX em Python:

A biblioteca mais comum para lidar com arquivos XLSX no Python é o pandas, que oferece suporte robusto para ler e escrever dados nesse formato.

import pandas as pd
# Leitura de um arquivo XLSX
df = pd.read_excel('arquivo.xlsx')
# Escrita de um DataFrame para um arquivo XLSX
df.to_excel('arquivo_saida.xlsx', index=False)

Arquivo CSV

O que é?
CSV (Comma-Separated Values) é um formato de arquivo simples que armazena dados tabulares como texto, com valores separados por vírgulas (ou outro delimitador como ponto e vírgula). É amplamente utilizado devido à sua simplicidade e compatibilidade.

Vantagens:

  • Simplicidade: Fácil de criar, ler e compartilhar, tanto para humanos quanto para máquinas.
  • Compatibilidade: É suportado por praticamente todas as ferramentas de manipulação de dados, incluindo editores de texto simples.
  • Tamanho pequeno: Em geral, os arquivos CSV são menores do que arquivos XLSX porque não armazenam informações de formatação.

Desvantagens:

  • Falta de formatação: Não pode armazenar fórmulas, gráficos ou formatações de célula. O CSV é puramente para armazenamento de dados.
  • Desempenho limitado para grandes volumes: Embora mais eficiente do que XLSX, para volumes realmente grandes de dados, o CSV ainda pode ser ineficiente em termos de leitura/escrita.
  • Ausência de tipos de dados: Todos os dados são armazenados como texto, e a conversão para os tipos corretos deve ser feita manualmente no código.

Como trabalhar com CSV em Python:
O pandas também é a biblioteca mais comum para ler e escrever arquivos CSV em Python.

import pandas as pd
# Leitura de um arquivo CSV
df = pd.read_csv('arquivo.csv')
# Escrita de um DataFrame para um arquivo CSV
df.to_csv('arquivo_saida.csv', index=False)

Arquivo PARQUET

O que é?
PARQUET é um formato de armazenamento de dados em colunas altamente otimizado e eficiente, amplamente utilizado em big data e ambientes de processamento distribuído, como Apache Spark e Hadoop.

Vantagens:

  • Alta eficiência e compactação: Por ser um formato de armazenamento em colunas, é ideal para grandes volumes de dados, proporcionando compressão e velocidade de leitura/escrita superiores.
  • Escalabilidade: Muito utilizado em sistemas distribuídos e pipelines de dados, o Parquet é projetado para processar grandes volumes de dados de maneira eficiente.
  • Armazenamento de metadados e tipos de dados: Diferente do CSV, o Parquet mantém informações sobre os tipos de dados e metadados, o que facilita a leitura e manipulação correta dos dados.

Desvantagens:

  • Não é legível por humanos: Ao contrário dos arquivos CSV, o Parquet não é facilmente inspecionável por pessoas, sendo mais adequado para uso por sistemas automatizados.
  • Complexidade: Não é tão amplamente conhecido ou utilizado como CSV ou XLSX, e requer bibliotecas adicionais para manipulação em Python.

Como trabalhar com PARQUET em Python:
No Python, o pandas suporta o formato Parquet com a ajuda de bibliotecas como pyarrow ou fastparquet.

import pandas as pd
# Leitura de um arquivo Parquet
df = pd.read_parquet('arquivo.parquet')
# Escrita de um DataFrame para um arquivo Parquet
df.to_parquet('arquivo_saida.parquet', index=False)

Comparação de Desempenho

Tempo de Leitura/Escrita

O formato Parquet geralmente apresenta o melhor desempenho em termos de tempo de leitura/escrita para grandes volumes de dados, seguido pelo CSV e, por último, o XLSX. O Parquet é otimizado para leitura seletiva de colunas e compressão de dados, tornando-o muito rápido para operações em massa.

Tamanho do Arquivo

Os arquivos Parquet também tendem a ser menores devido à sua capacidade de compactação eficiente. O CSV, sendo um arquivo de texto, ocupa mais espaço, e o XLSX, com suas formatações e metadados, é o maior de todos.

Suporte para Manipulação de Dados

Enquanto XLSX e CSV são mais amigáveis para visualização e compartilhamento entre usuários não técnicos, o Parquet é mais apropriado para projetos de ciência de dados de grande escala, onde o desempenho é crítico.

Conclusão

A escolha entre XLSX, CSV e PARQUET depende muito do contexto de uso. O XLSX é ideal para compartilhamento e relatórios, especialmente em ambientes corporativos. O CSV é excelente para cenários simples e compatibilidade com diversas ferramentas. Já o PARQUET se destaca quando o foco é o desempenho e escalabilidade, especialmente em sistemas de big data. Ao trabalhar com Python, o pandas facilita a manipulação de todos esses formatos, tornando a escolha entre eles uma questão de priorizar o desempenho, o tamanho do arquivo ou a facilidade de uso.

--

--

Johann Albino
Johann Albino

Written by Johann Albino

I’m brazilian, gamers, streamer, developer and I lovely all this.

No responses yet