Como Importar Arquivos CSV Usando Pandas

Olá, futuro Cientista de Dados!

No post de hoje vamos começar a nossa jornada nessa área que tem chamado muita atenção de profissionais e de empresas!

E não é à toa: o mercado está cada vez mais procurando profissionais com esse perfil, no Brasil e no mundo.

Até a Harvard Business Review concorda comigo!

Sexiest Job

Esse post dá início à uma série de posts da biblioteca que é considerada por muitos um dos motivos de Python ser cada vez mais utilizado por cientista de dados: o poderoso Pandas! :punch:

Mas calma! Sem medo galera!

Você vai ver que, apesar de versátil - como as boas bibliotecas pythonistas - Pandas é extremamente simples de utilizar.

Entendendo o básico de dataframes, series e índices, vocês dominarão o mundo do data wrangling (nome bonito para: FUÇAR OS DADOS :smile:).

Mas antes de aprender isso tudo em outros posts, vamos direto ao assunto para quebrar logo o gelo e começar com o pé direito: importar arquivos CSV e visualizar os dados!

Vá Direto ao Assunto…

Arquivo CSV

Cara, não devo saber nada mesmo, o que é um arquivo CSV???

Não tema meu amigo pythonista, um arquivos CSV nada mais é que um arquivo de texto com valores separados por vírgula (Comma Separated Values).

Ou seja, nada mais é que um arquivo onde cada linha possui valores separados por vírgulas. Bora de exemplo?

Arquivo CSV

O arquivo mostra os dados de 5 músicas, com banda e ano de lançamento, além da última coluna que contém o nome completo.

Percebam que a primeira linha é o cabeçalho, com o nome descritivo de cada coluna.

Viu? Moleza, não é?

Claro que, na maioria dos casos práticos, os arquivo terão milhares ou mesmo milhões de linhas. Contudo, enquanto seu computador tiver memória para aguentar, o Pandas estará do seu lado!

Quando não estiver do nosso lado, bem, aí é assunto pra um outro post (deixem comentários aqui embaixo se gostariam de um post com esse assunto :wink:)

Vamos então ao que interessa: Pandas!!!

Pandas! Not these!?!

Ops, esse não, produtor!! :man_facepalming:

Instalação do Pandas

Caso você utilize o Anaconda, o Pandas já vem instalado por padrão.

Caso contrário, sigam-me os bons.

Vamos instalá-lo utilizando nosso bom e velho pip.

Primeiro, vamos ao básico: ative seu ambiente virtual para começar a instalação.

COMO ASSIM você não usa ambientes virtuais?! :scream:

Se você é desses, já vai lá no post sobre ambientes virtuais pra começarmos direito!

Para instalar o Pandas (após ativar seu ambiente virtual), basta executar o comando:

1
pip install pandas

Voilá, temos nossa ferramenta pronta pra trabalhar!

Agora escolha sua melhor IDE, seu notebook jupyter ou mesmo a linha de comando e mãos à obra - ou melhor - mãos ao código :muscle:

Importar Arquivo CSV com Pandas

Primeramente temos que importar a biblioteca!

Sabemos que na hora de importar qualquer biblioteca em Python, podemos criar um apelido (alias) para facilitar o acesso.

No caso do Pandas, o padrão é chamá-lo carinhosamente de ‘pd’:

1
>>> import pandas as pd

Com o Pandas importado, vamos utilizar o método read_csv(), passando como parâmetro o arquivo CSV que queremos importar.

No nosso caso, vamos usar o arquivo bandas.csv, que você pode clicar aqui para baixá-lo.

O método retorna uma estrutura tabular que é a base do Pandas, chamada de Dataframe.

Um dataframe nada mais é que uma estrutura bidimensional, com linhas e colunas.

Imagine uma planilha do Excel ou uma tabela do seu banco de dados e terá uma boa noção de como ele se comporta:

1
2
>>> import pandas as pd
>>> musicas = pd.read_csv('./bandas.csv')

Como assim, só isso?

Sim, jovem padawan!! Mais mole, só sentando na gelatina.

Mas… O que aconteceu?

Nosso querido pandas leu o arquivo CSV, já entendeu que a primeira linha é o cabeçalho, e separou as colunas direitinho pra você!

Ainda duvida?

Vamos rodar o comando abaixo para verificar as 5 primeiras linhas do nosso Dataframe com músicas do arquivo CSV importado:

1
2
3
>>> import pandas as pd
>>> musicas = pd.read_csv('./bandas.csv')
>>> musicas.head()

E o resultado será:

1
2
3
4
5
6
                musica            artista  ano de lancamento                           nome completo
0          Radioactive    Imagine Dragons               2012          Radioactive by Imagine Dragons
1      Good Vibrations     The Beach Boys               1966       Good Vibrations by The Beach Boys
2    A Day In The Life        The Beatles               1967        A Day In The Life by The Beatles
3  Message In A Bottle         The Police               1979       Message In A Bottle by The Police
4    Seven Nation Army  The White Stripes               2003  Seven Nation Army by The White Stripes

Uai… E essa primeira coluna com valores de 0 a 4, que não estava no arquivo original!?!

Esse padawan é esperto! :wink:

Veremos num próximo post que o Pandas não cria “nomes” somente para as colunas, mas também para as linhas!!

Esse “nome” é chamado de índice e será muito importante para realizarmos seleções de partes dos dados de um Dataframe Pandas.

Maaaaaas… Cenas para um próximo capítulo :bowtie:

Não quer perder o próximo capítulo?

Então que tal fazer parte da nossa lista exclusiva de Pythonistas e receber nosso conteúdo em primeira mão?! :wink:

Claro que esse CSV já estava todo arrumadinho, limpinho e cheiroso. Mas não se engane: nem sempre será assim.

Um dos trabalhos do cientista de dados é limpar os dados, que consiste em:

  • Consertar codificação de dados de entrada;
  • Converter tipos;
  • Configurar separadores de decimais;
  • Limpar caracteres indesejados;
  • Tratar dados faltantes entre outros vários problemas.

Podemos já tratar alguns desses problemas no momento da importação dos dados, no próprio método read_csv()

Um exemplo de parâmetro é dizer para o Pandas que não queremos que a primeira linha seja considerada o cabeçalho, mas sim parte dos dados.

Para isso, podemos executar o método read_csv() com o parâmetro header com o valor None:

1
2
>>> musicas_sem_cabecalho = pd.read_csv('./bandas.csv', header=None)
>>> musicas_sem_cabecalho.head()

Com esse parâmetro, temos o resultado:

1
2
3
4
5
6
                     0                1                  2                                  3
0               musica          artista  ano de lancamento                      nome completo
1          Radioactive  Imagine Dragons               2012     Radioactive by Imagine Dragons
2      Good Vibrations   The Beach Boys               1966  Good Vibrations by The Beach Boys
3    A Day In The Life      The Beatles               1967   A Day In The Life by The Beatles
4  Message In A Bottle       The Police               1979  Message In A Bottle by The Police

Percebam que agora temos outros nomes para cada coluna! O Pandas cria os nomes automaticamente, começando do 0.

Bônus: e exportar para CSV?

Uma vez com o Dataframe Pandas em memória (após a execução do read_csv()), podemos escrever um arquivo CSV de saída utilizando o método to_csv(), da seguinte forma:

1
>>> musicas_sem_cabecalho.to_csv('./bandas_sem_cabecalho.csv')

Prontinho! temos nosso arquivo CSV exportado! :smile:

Conclusão

Primeiro contato com Pandas, o que achou? Fácil, difícil?

Comenta aqui embaixo suas dores e/ou sugestões! A gente quer te ouvir :wink:

Esse foi somente o primeiro de muitos posts, pois esse assunto é muito extenso e importante para quem está iniciando a carreira de cientista de dados.

Ter destreza na manipulação de dados tabulares é essencial nesse ramo e estamos aqui pra fazer você chegar lá!

Vamos juntos que o caminho é longo, mas possível e gratificante!

Antes de terminar: sabia que a gente está no Instagram?

Vai lá e deixe seu comentário, interaja com a gente! Tem posts complementares ao blog e muitos desafios: procurem nos destaques :wink:

Até o próximo post!

Gostou do conteúdo? Compartilha aí!