Ler e inspecionar um DataFrame

Abrir um arquivo de dados no pandas e dar a primeira olhada: linhas, colunas e tipos.
Operações com pandasOperações com pandasAula 1 Aula 3 Aula 11← voltar ao mapa
Na prova · apoio A prova entrega a base e o código de leitura; basta saber olhar o resultado. Guia da prova

Os códigos desta página rodam no navegador, mas não sozinhos: clique em Run Code em cada bloco, de cima para baixo.

DicaEm uma frase

Toda análise começa igual: ler o arquivo para um DataFrame (pd.read_excel, pd.read_csv, pd.read_table) e olhar para ele antes de calcular qualquer coisa, com .head(), .shape e .dtypes.

A ideia

Na Aula 1 abrimos a base WorldBank.xlsx. O pandas guarda os dados em um DataFrame, que é uma tabela: cada linha é uma observação (um país, um cliente, um passageiro) e cada coluna é uma variável (população, renda, plano). Essa leitura linha = observação, coluna = variável vai acompanhar o curso inteiro, inclusive na parte de probabilidade, quando cada linha vira uma realização de um experimento aleatório.

A função de leitura depende do formato do arquivo:

Arquivo Função Onde apareceu
.xlsx (Excel) pd.read_excel('arquivo.xlsx') WorldBank, Empresa de TV, Titanic
.csv (separado por vírgula) pd.read_csv('arquivo.csv') desempenho de estudantes, erupções
.txt separado por espaço pd.read_table('arquivo.txt', sep=' ') vistoria do Detran (Aula 11)

Depois de ler, faça sempre três perguntas: quantas linhas e colunas a base tem, como são os primeiros registros e que tipo o pandas atribuiu a cada coluna. Isso evita a maior parte dos erros que só aparecem lá na frente.

No código

O arquivo precisa estar na mesma pasta do notebook. Dá para conferir antes de ler:

Lendo e guardando o resultado em uma variável. Sem a atribuição dados = ..., o pandas mostra a tabela e a joga fora.

São 168 países e 6 variáveis. Repare nos tipos: Country e region são object (texto), GDPcapita é float64 (número com casas decimais) e Population, surface e landlocked são int64 (inteiros). Mas landlocked só vale 0 ou 1 e significa “sem saída para o mar”: é uma variável qualitativa guardada como número. O dtype diz como o pandas armazena a coluna, não que tipo de variável ela é. Quem decide isso é você, e depois avisa o pandas (veja Categorias e ordem).

Um arquivo .txt com colunas separadas por espaço precisa do separador certo. Com read_csv sem sep, tudo cai em uma coluna só:

Os erros mais comuns ao ler e inspecionar, rodados de propósito:

Armadilhas comuns

  • Arquivo em outra pasta. O FileNotFoundError quase sempre significa que o notebook e o arquivo não estão na mesma pasta, ou que o nome (inclusive a extensão) está diferente. Use os.listdir() para ver o que o Python enxerga.
  • Esquecer de guardar a leitura. pd.read_excel('WorldBank.xlsx') sozinho só mostra a tabela. Para usar depois, escreva dados = pd.read_excel(...).
  • Parênteses no lugar errado. Métodos levam parênteses (.head(), .describe()); atributos não (.shape, .dtypes, .columns). dados.shape()'tuple' object is not callable.
  • Separador errado. Se a base apareceu com uma coluna só e nomes estranhos, o separador está errado: use sep=' ' (espaço), sep=';' etc.
  • Confiar no dtype para classificar a variável. Números podem ser códigos de categorias (PLANO = 1 ou 2 na Empresa de TV, landlocked = 0 ou 1). Calcular a média de um código não faz sentido.

dados.tail() mostra as últimas linhas. dados.info() junta shape, dtypes e a contagem de valores não vazios por coluna, útil para achar dados faltantes (no Titanic, a coluna Age tem valores vazios). E dados.describe() resume de uma vez todas as colunas numéricas, como você verá em medidas de posição.

Exercícios aqui na página

Complete os ______ e clique em Run Code: a correção aparece logo abaixo. Use Show Hint para uma dica e Show Solution para ver uma resolução. O Python roda no seu navegador; na primeira vez ele leva alguns segundos para carregar.

Exercício 1

Leia a base do Titanic (titanic.xlsx, a da Aula 4) e guarde em formato o número de linhas e de colunas.

A função de leitura depende da extensão do arquivo: .xlsx é Excel.

titanic = pd.read_excel('titanic.xlsx')
formato = titanic.shape
formato

Exercício 2

A base da vistoria do Detran (Carros.txt, Aula 11) tem as colunas separadas por espaço. Leia com o separador certo e conte quantos carros são populares (Tipo igual a 1).

Somar uma condição (True/False) conta quantos True existem.

carros = pd.read_table('Carros.txt', sep=' ')
n_populares = (carros['Tipo'] == 1).sum()
n_populares

Exercício 3

Olhe os tipos com titanic.dtypes. Que dtype o pandas deu à coluna Survived? Escreva o nome exatamente como o pandas mostra. (Repare: é um número, mas a variável é qualitativa.)

Survived vale 0 ou 1: o pandas guarda como inteiro.

print(titanic.dtypes)
tipo_survived = 'int64'
tipo_survived

Comandos e documentação oficial

Pratique

As listas novas de revisão abrem no Google Colab (use Arquivo → Salvar uma cópia no Drive). As listas das aulas estão no Blackboard, na pasta de cada aula.