Salvando dataframes Pandas em arquivos CSV

Durante uma atividade de análise exploratória de dados precisamos salvar um dataframe intermediário ou arquivos para uso futuro. Nesse artigo vamos mostrar como utilizar a função to_csv() para salvar o seu dataframe em um arquivo csv.

Durante alguns projetos de análise exploratória dos dados precisamos gerar alguns datasets intermediários. Para evitar uma carga completa dos dados, geramos arquivos com uma fração ou uma seleção específica de registros. Como a biblioteca Pandas é uma das mais usadas no Python, nesse artigo vamos mostrar o uso da função to_csv(). Ela é utilizada para converter os dados de um dataframe para um arquivo csv (comma-separated-values).

Apesar de simples, vocês verão que podemos nos complicar com os parâmetros.

Carregando o dataset dos atletas da Olímpiadas de Tokyo

No nosso exemplo, vamos utilizar o dataset de atletas da última olimpíadas. Você pode consultar o local onde peguei os dados no Kaggle:

https://www.kaggle.com/ankitkalauni/tokyo-olympic-2021-starter-clean-eda/data

Ou consultar o meu repositório no github:

https://github.com/aprendadatascience/datasets

Com o df.head() visualizamos os primeiros 5 registros do dataframe, temos três colunas:
Nome, País e Modalidade esportiva.

Filtrando somente os dados do Brasil

Ocorre que esse dataframe possui os nomes e modalidades de atletas do mundo todo. Para selecionar apenas os do Brasil e carregá-lo em um novo dataset podemos utilizar o código abaixo.
O df.NOC == 'Brazil' funcionará como um filtro, copiando para a variável df_brazil somente as linhas de atletas do Brasil.

Veja o código:

Esse novo dataframe chamado de df_brazil terá 291 linhas e ocupará apenas 9.1 KB, o anterior possuia 11085 linhas e ocupava 259.9 KB;


1 — Gerando arquivo csv com os atletas do Brasil com e sem índices:

Para gerar esse arquivo precisamos utilizar apenas a função do próprio pandas to_csv(nome_do_arquivo.csv):


A execução dessa célula irá criar um arquivo na pasta onde o código estiver em execução. Caso esteja usando o Google Colab, o arquivo aparecerá no menu a esquerda.



Ao clicar no arquivo, talvez você perceba um pequeno detalhe. Essa opção padrão do to_csv gera um arquivo com índices e com cabeçalho como o abaixo, esse é o índice do dataframe original, portanto precisamos reconstruí-lo ou apenas não levá-lo para o novo dataframe.

Para gerar um arquivo sem índice, devemos especificar o atributo index=False já que o default é True, ou seja, quando você não preencher nada a função entenderá como index=True e salvará os índices no arquivo csv;

No exemplo abaixo definimos o index=False

Novo arquivo sem o índice:

2 — Selecionando apenas algumas colunas para o csv

Como o nosso dataframe possui apenas dados de atletas do Brasil, não faz sentido ainda salvarmos a coluna que indica o país no arquivo, concordam?
Para trazer apenas as colunas de interesse para o arquivo csv precisaremos utilizar o atributo columns e indicar quais as colunas desejamos como no exemplo abaixo:

O resultado é o novo arquivo abaixo, sem índice e sem a coluna NOC:

3- Removendo também o cabeçalho:

Pode ser do nosso interesse de salvar os dados sem o cabeçalho, para usá-lo em uma impressão de lista ou colar o resultado diretamente em outra tabela;

Para que o cabeçalho não seja salvo no novo arquivo devemos configurar o atributo header para False, igual ao que fizemos com o index:

Apenas fiquem atentos que sem cabeçalho, o interpretador do arquivo pode entender que a primeira linha ainda é um cabeçalho e colocá-los em destaque como na imagem abaixo:

4- Salvando arquivos com outros separadores:

Apesar do arquivo CSV representar dados tradicionalmente separados por vírgulas, podemos utilizar outros separadores.
No exemplo abaixo separamos os arquivos por ponto e vírgula e espaço (tab):

Observe que utilizar o espaço como separador pode ser um problema caso os dados das colunas já sejam naturalmente separados por espaços.
Dados separados por ponto e vírgula:

Separando os dados por espaço(/t), observem que teríamos dificuldades em importar o arquivo para um arquivo CSV, ou seja, cuidado ao utilizar o separador "/t" quando os dados forem textuais:

5- Salvando o dataframe em um .zip

Para exportar o dataframe diretamente para um arquivo zipado precisamos utilizar o atributo compression_opts como no exemplo abaixo:

Essa funcionalidade é interessante quando estamos gerando vários arquivos e precisamos economizar espaço em disco. O atributo archive_name é referente ao nome do arquivo que irá dentro do arquivo zip (out.zip);

Conclusão

Espero que nesse artigo você tenha entendido como utilizar a função to_csv para salvar dataframes em arquivos CSVs;
Caso queira realizar outros testes, o Notebook está disponível aqui:

https://github.com/aprendadatascience/projects/blob/master/%5BAprenda_Data_Science%5D_Pandas_Fun%C3%A7%C3%A3o_to_csv.ipynb

Para mais conteúdo de Python e Data Science nos siga em @aprendadatascience ou no grupo do telegram: https://t.me/aprendadatascience

Até o próximo artigo!