Alura > Cursos de Data Science > Cursos de Data Science > Conteúdos de Data Science > Primeiras aulas do curso Pandas I/O: trabalhando com diferentes formatos de arquivos

Pandas I/O: trabalhando com diferentes formatos de arquivos

Fazendo leitura de arquivos CSV - Apresentação

Olá! Meu nome é Valquíria, sou instrutora na escola de Data Science.

Autodescrição: Valquíria é uma mulher branca com olhos castanhos, cabelos lisos e louros, numa altura abaixo dos ombros. Veste uma blusa preta e está sentada em uma cadeira gamer com detalhes verdes. Ao fundo há uma luz esverdeada.

Neste curso aprenderemos a importar e exportar em diferentes formatos de arquivos utilizando a biblioteca Pandas.

Neste curso não vamos analisar os dados.

A habilidade de trabalhar com diferentes formatos de arquivos é essencial para quem trabalha na área de dados. Em cada uma das aulas trabalharemos com diferentes formatos de arquivos, para isso usaremos conjuntos de dados e temas distintos para cada aula.

O que você aprenderá neste curso?

Pré-requisitos

Para aproveitar todo o conteúdo, recomendamos que você tenha conhecimentos básicos em Python.

E aí, bora começar?

Fazendo leitura de arquivos CSV - Lendo arquivos CSV

Temos um supermercado que está planejando uma liquidação de fim de ano, eles querem oferecer uma assinatura que dá 20% de desconto em todas as compras.

E o time de marketing desse supermercado entende que a melhor maneira de diminuir custos com essa campanha é analisar os dados de compras dos clientes e entender quais teriam mais chances de aderir a essa assinatura e oferecer diretamente a essas pessoas.

Nós temos os dados dessas pessoas lá no GitHub vamos dar uma conferida?

O nome do arquivo é superstore_data.csv. Esse .csv é o formato do nosso arquivo, em breve entenderemos o que é isso.

A tabela é formada por uma primeira linha que é como se fosse um cabeçalho contendo os títulos de cada uma das colunas e, em seguida, temos uma linha para cada cliente.

No canto direito dessa página do GitHub temos um botão intitulado "Raw". Ao clicarmos em "Raw" conseguiremos ver como esses dados estão estruturados de fato, sem nenhuma formatação prévia, são os "dados brutos".

Note que temos valores, tanto palavras quanto números, separados por vírgulas.

Quando temos um arquivo separado por vírgulas, temos um arquivo .csv, que em inglês significa "comma-separated values" (valores separados por vírgula).

Utilizando a biblioteca Pandas no Google Colab

Vamos para o Google Colab para saber como ler esse arquivo com a biblioteca Pandas.

Acessaremos o Google Colab e nosso ambiente já está conectado, já temos uma célula disponível. O primeiro passo é importar a biblioteca Pandas. Para isso, usaremos o seguinte comando:

import pandas as pd

Para facilitar a escrita, costumamos apelidar as bibliotecas. Por isso abreviamos Pandas para pd.

Para executar a célula podemos clicar na seta localizada à esquerda ou usar o atalho "Shift + Enter". Vamos executar.

Em seguida, vamos criar uma variável chamada url com o endereço de onde estão os dados brutos do nosso arquivo. Podemos colocar o endereço da URL em que os dados brutos estão dentro aspas simples ou aspas duplas, tanto faz. Aqui vou usar aspas simples. Vamos executar esta célula:

url = 'https://raw.githubusercontent.com/alura-cursos/Pandas/main/superstore_data.csv'

Em seguida, faremos a leitura desse arquivo. Para isso, criaremos uma variável chamada dados_mercado que será igual a pd.read_csv. A read_csv é a função que consegue fazer a leitura de um arquivo .csv.

Vamos abrir parênteses e, dentro deles, passaremos a variável na qual armazenamos o endereço URL dos dados brutos.

dados_mercado = pd.read_csv(url)

A função read_csv vai pegar esse endereço que passamos e ler esses dados em um objeto Pandas chamado DataFrame. Ele é muito parecido com uma tabela, vamos visualizar isso agora.

Para visualizar esse DataFrame executaremos o comando:

dados_mercado.head()

A função read() permite a visualização das 5 primeiras linhas desse DataFrame.

Ao executar a célula do comando dados_mercado.head() teremos algo semelhante a uma tabela contendo os nossos dados. Temos 5 linhas e 22 colunas.

IdYear_BirthEducationMarital_StatusIncomeKidhomeTeenhomeDt_CustomerRecencyMntWinesMntFruitsMntMeatProductsMntFishProducts...
018261970GraduationDivorced84835006/16/20140189104379111...
111961GraduationSingle57091006/15/201404645647...
2104761958GraduationMarried67267015/13/20140134115915...
313861967GraduationTogether324741111/5/2014010010...
453711989GraduationSingle21474108/4/201406162411...

Quais informações nós temos? O Id de cada cliente, que é um código diferente para cada uma das pessoas; o ano de nascimento; nível de escolaridade; estado civil; rendimento anual; e várias colunas com informações sobre as compras que essas pessoas fizeram no mercado. Temos bastante informação.

Beleza! Conseguimos abrir esse arquivo .csv utilizando a biblioteca Pandas no Google Colab, mas tem um detalhe: os arquivos .csv nem sempre são separados por vírgulas. Às vezes eles podem estar separados por ponto e vírgula (;).

O que acontece nesse caso? Como podemos fazer a leitura?

Para entendermos isso, preparei um arquivo igual ao que usamos nesse vídeo, mas agora ele está separado por ponto e vírgula. É um arquivo chamado superstore_data_ponto_virgula.csv.

Acesse o arquivo superstore_data_ponto_virgula.csv neste link.

Se clicarmos no botão "Raw" teremos os dados brutos desse arquivo. Agora vamos entender o que acontece se fizermos a leitura desses dados com o Pandas. Vamos copiar o endereço URL dos dados brutos de superstore_data_ponto_virgula.csv e executaremos o seguinte comando para criar uma nova variável que conterá esse endereço:

url_2 = 'https://raw.githubusercontent.com/alura-cursos/Pandas/main/superstore_data_ponto_virgula.csv'

Em seguida, criaremos uma nova variável chamada dados_ponto_virgula que será igual a pd.read_csv() passando a url_2.

dados_ponto_virgula = pd.read_csv(url_2)

Agora, vamos visualizar as 5 primeiras linhas desse arquivo com a função head().

dados_ponto_virgula.head()

Ao executar essa célula, aconteceu alguma coisa muito estranha. Note que não temos separação de colunas. Temos as linhas e as informações estão todas juntas, sem espaço. Muito diferente de como visualizamos antes.

O que aconteceu? Como podemos corrigir isso para quando quisermos ler um arquivo .csv separado por ponto e vírgula?

Vamos descobrir isso no próximo vídeo, com a ajuda da documentação da biblioteca Pandas.

Fazendo leitura de arquivos CSV - Parâmetros da função read_csv

Nós tentamos ler um arquivo CSV separado por ponto e vírgula e o resultado ficou muito esquisito, as informações apareceram bagunçadas. Vamos resolver isso agora, com a ajuda da documentação da biblioteca Pandas.

Na documentação ,consultaremos a parte que fala sobre a função read_csv(). Existem vários parâmetros que podem ser alterados quando queremso fazer a leitura de um CSV.

Recomendo que você leia essa documentação e explore cada parâmetro. Aqui vamos direto ao ponto, que é o parâmetro sep. Esse parâmetro é o que mostra qual será o separador do arquivo CSV. A documentação indica que o default, o padrão dele, é a separação por vírgulas. Então, basta alterarmos esse parâmetro.

De volta ao Colab, vamos adicionar uma nova célula de código e criaremos uma variável chamada dados_sem_vírgula que será igual a pd.read_csv(url_2). Em seguida, adicionaremos o parâmetro sep igual a pornto e vírgula. Assim ele vai entender que o separador é ponto e vírgula. Vamos executar esta célula:

dados_ponto_virgula = pd.read_csv(url_2, sep = ';')

Já podemos tentar visualizar as cinco primeiras linhas da tabela.

dados_ponto_virgula.head()

Agora, dados apareceram corretamente no DataFrame. Então, é importante verificar qual é o separador do seu arquivo CSV e indicar no parâmetro sep caso não seja uma separação por vírgula.

Além desse parâmetro temos vários outros que podem ser explorados. Vamos falar sobre alguns deles.

Parâmetro nrows

Começarei com um parâmetro que é interessante se você quiser visualizar apenas algumas linhas do seu DataFrame é bom para quando temos um DataFrame muito grande e queremos apenas ter uma visualização geral do conteúdo.

Criaremos uma variável chamada dados_primeiras_linhas e dentro do pd.read_csv() passaremos a variável url e o parâmetro nrows igual à quantidade de linha que quero que sejam monstrada, vou colocar apenas 5.

dados_primeiras_linhas = pd.read_csv(url,nrows=5)

Após executar essa célula, podemos visualizar as cinco linhas que pedimos executando a seguinte célula:

dados_primeiras_linhas

Parâmetro usecols

Outro parâmetro que também podemos testar agora é um parâmetro que consegue mostrar apenas algumas colunas.

Por exemplo, vamos supor que queremos visualizar os clientes apenas pelo seu id, ano de nascimento e seu rendimento anual.

Para isso, criaremos uma variável chamada dados_selecao igual a pd.read_csv() passando url e usecols, sinal de igual, e dentor de colchetes vamos informar quais colunas queremos visualizar. Vamos querer as colunas Id, ano de nascimento (Year_Birth) e a coluna do rendimento anual (Income).

dados_selecao = pd.read_csv(url, usecols=['Id', 'Year_Birth', 'Income'])

Após executar essa célula, podemos chamar dados_selecao.

dados_selecao
IdYear_BirthIncome
01826197084835.0
11196157091.0
210476195867267.0
31386196732474.0
45371198921474.0

Outra dica é que essas colunas que selecionamos podem ser indicadas pela posição ao invés do nome. Lembre-se que em Python começamos a indexar em zero, então as posições começam a partir do zero.

Na tabela original, a coluna do Id seria a coluna 0; a coluna Year_Birth é a coluna 1 e a Income é a coluna 4. Usaremos o mesmo código, mas com os valores no lugar nos nomes das colunas.

dados_selecao = pd.read_csv(url, usecols=[0,1,4])

Teremos o mesmo resultado ao chamar a variável.

dados_selecao
IdYear_BirthIncome
01826197084835.0
11196157091.0
210476195867267.0
31386196732474.0
45371198921474.0

Próximos passos

Além disso, é possível salvar um arquivo no formato CSV, no próximo vídeo descobriremos como fazer isso.

Sobre o curso Pandas I/O: trabalhando com diferentes formatos de arquivos

O curso Pandas I/O: trabalhando com diferentes formatos de arquivos possui 109 minutos de vídeos, em um total de 54 atividades. Gostou? Conheça nossos outros cursos de Data Science em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Data Science acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas