Pular para o conteúdo principal
InicioTutoriaisPython

Tutorial do Python pandas: O guia definitivo para iniciantes

Você está pronto para começar sua jornada com os pandas? Aqui está um guia passo a passo sobre como você pode começar.
Actualizado 18 de jul. de 2024  · 15 min leer

O pandas é, sem dúvida, o pacote Python mais importante para análise de dados. Com mais de 100 milhões de downloads por mês, ele é o pacote padrão de fato para manipulação de dados e análise exploratória de dados. Sua capacidade de ler e gravar em uma extensa lista de formatos o torna uma ferramenta versátil para os profissionais de ciência de dados. Suas funções de manipulação de dados o tornam uma ferramenta altamente acessível e prática para agregar, analisar e limpar dados. 

Em nossa publicação no blog sobre como aprender pandas, discutimos o caminho de aprendizado que você pode seguir para dominar esse pacote. Este tutorial para iniciantes abordará todos os conceitos básicos e ilustrará as diferentes funções do pandas. Você também pode conferir nosso curso sobre Fundamentos do pandas para obter mais detalhes. 

Este artigo é destinado a iniciantes com conhecimento básico de Python e sem experiência prévia com o pandas para ajudar você a começar.

O que são pandas?

O pandas é um pacote de manipulação de dados em Python para dados tabulares. Ou seja, dados na forma de linhas e colunas, também conhecidos como DataFrames. Intuitivamente, você pode pensar em um DataFrame como uma planilha do Excel. 

A funcionalidade do pandas inclui transformações de dados, como classificar linhas e obter subconjuntos, calcular estatísticas resumidas, como a média, remodelar DataFrames e unir DataFrames. O pandas funciona bem com outros pacotes populares de ciência de dados do Python, geralmente chamados de ecossistema PyData, incluindo

Para que o pandas é usado?

O pandas é usado em todo o fluxo de trabalho de análise de dados. Com os pandas, você pode:

  • Importe conjuntos de dados de bancos de dados, planilhas, arquivos de valores separados por vírgula (CSV) e muito mais.
  • Limpar conjuntos de dados, por exemplo, lidando com valores ausentes.
  • Organize conjuntos de dados remodelando sua estrutura em um formato adequado para análise.
  • Agregue dados calculando estatísticas resumidas, como a média das colunas, a correlação entre elas e muito mais.
  • Visualize conjuntos de dados e descubra insights.

O pandas também contém funcionalidades para análise de séries temporais e análise de dados de texto.

Principais benefícios do pacote pandas

Sem dúvida, o pandas é uma poderosa ferramenta de manipulação de dados com vários benefícios, incluindo:

  • Feito para Python: Python é a linguagem mais popular do mundo para aprendizado de máquina e ciência de dados.
  • Menos verboso por operações unitárias: O código escrito em pandas é menos detalhado, exigindo menos linhas de código para obter o resultado desejado. 
  • Visão intuitiva dos dados: O pandas oferece uma representação de dados excepcionalmente intuitiva que facilita a compreensão e a análise dos dados.
  • Amplo conjunto de recursos: Ele oferece suporte a um amplo conjunto de operações de análise exploratória de dados, lidando com valores ausentes, calculando estatísticas, visualizando dados univariados e bivariados e muito mais.
  • Trabalha com dados grandes: pandas lida com grandes conjuntos de dados com facilidade. Ele oferece velocidade e eficiência ao trabalhar com conjuntos de dados da ordem de milhões de registros e centenas de colunas, dependendo da máquina.

Como instalar o pandas?

Antes de nos aprofundarmos em sua funcionalidade, vamos primeiro instalar o pandas. Você pode evitar essa etapa registrando-se em uma conta gratuita do DataCamp e usando o DataLab, o IDE baseado em nuvem do DataLab que vem com o pandas (juntamente com os principais pacotes de ciência de dados em python) pré-instalado.

Comece a usar o DataLab

Acompanhe o tutorial no DataLab

Saiba Mais

Instalar o pandas

A instalação do pandas é simples; basta usar o comando pip install em seu terminal. 

pip install pandas

Importação de dados no pandas

Para começar a trabalhar com o pandas, importe o pacote Python pandas, conforme mostrado abaixo. Ao importar pandas, o alias mais comum para pandas é pd.

import pandas as pd

Importação de arquivos CSV

Use read_csv() com o caminho para o arquivo CSV para ler um arquivo de valores separados por vírgula (consulte nosso tutorial sobre importação de dados com read_csv() para obter mais detalhes).

df = pd.read_csv("diabetes.csv")

Essa operação de leitura carrega o arquivo CSV diabetes.csv para gerar um objeto Dataframe do pandas df. Ao longo deste tutorial, você verá como manipular esses objetos DataFrame. 

Importação de arquivos de texto

A leitura de arquivos de texto é semelhante à de arquivos CSV. A única nuance é que você precisa especificar um separador com o argumento sep, conforme mostrado abaixo. O argumento separador refere-se ao símbolo usado para separar as linhas em um DataFrame. Vírgula (sep = ","), espaço em branco (sep = "\s"), tabulação (sep = "\t") e dois pontos (sep = ":") são os separadores comumente usados. Aqui, \s representa um único caractere de espaço em branco.

df = pd.read_csv("diabetes.txt", sep="\s")

Importação de arquivos do Excel (planilha única)

Ler arquivos do Excel (XLS e XLSX) é tão fácil quanto a função read_excel(), usando o caminho do arquivo como entrada.

df = pd.read_excel('diabetes.xlsx')

Você também pode especificar outros argumentos, como header for para especificar qual linha se torna o cabeçalho do DataFrame. Tem um valor padrão de 0, que indica a primeira linha como cabeçalhos ou nomes de colunas. Você também pode especificar os nomes das colunas como uma lista no argumento names. O argumento index_col (o padrão é None) pode ser usado se o arquivo contiver um índice de linha.

Observação: Em um pandas DataFrame ou Series, o índice é um identificador que aponta para o local de uma linha ou coluna em um pandas DataFrame. Em resumo, o índice rotula a linha ou coluna de um DataFrame e permite que você acesse uma linha ou coluna específica usando seu índice (você verá isso mais adiante). O índice de linha de um DataFrame pode ser um intervalo (por exemplo, 0 a 303), uma série temporal (datas ou carimbos de data/hora), um identificador exclusivo (por exemplo, employee_ID em uma tabelaemployees ) ou outros tipos de dados. Para colunas, geralmente é uma cadeia de caracteres (denotando o nome da coluna).

Importação de arquivos do Excel (várias planilhas)

A leitura de arquivos do Excel com várias planilhas não é muito diferente. Você só precisa especificar um argumento adicional, sheet_name, no qual você pode passar uma string para o nome da planilha ou um número inteiro para a posição da planilha (observe que o Python usa a indexação 0, em que a primeira planilha pode ser acessada com sheet_name = 0)

# Extracting the second sheet since Python uses 0-indexing
df = pd.read_excel('diabetes_multi.xlsx', sheet_name=1)

Importação de arquivo JSON

Semelhante à função read_csv(), você pode usar read_json() para tipos de arquivo JSON com o nome do arquivo JSON como argumento (para obter mais detalhes, leia este tutorial sobre a importação de dados JSON e HTML para o pandas). O código abaixo lê um arquivo JSON do disco e cria um objeto DataFrame df.

df = pd.read_json("diabetes.json")

Se você quiser saber mais sobre a importação de dados com o pandas, confira esta folha de dicas sobre a importação de vários tipos de arquivos com o Python. 

Saída de dados no pandas

Assim como o pandas pode importar dados de vários tipos de arquivos, ele também permite que você exporte dados para vários formatos. Isso acontece especialmente quando os dados são transformados usando o pandas e precisam ser salvos localmente em seu computador. A seguir, você verá como produzir DataFrames do pandas em vários formatos.

Saída de um DataFrame em um arquivo CSV

Um DataFrame do pandas (aqui estamos usando df) é salvo como um arquivo CSV usando o método .to_csv(). Os argumentos incluem o nome do arquivo com o caminho e index - em que index = True implica a gravação do índice do DataFrame.

df.to_csv("diabetes_out.csv", index=False)

Saída de um DataFrame em um arquivo JSON

Exporte o objeto DataFrame para um arquivo JSON chamando o método .to_json().

df.to_json("diabetes_out.json")

Observação: Um arquivo JSON armazena um objeto tabular, como um DataFrame, como um par de valores-chave. Assim, você observaria a repetição de cabeçalhos de coluna em um arquivo JSON.

Saída de um DataFrame em um arquivo de texto

Assim como na gravação de DataFrames em arquivos CSV, você pode chamar .to_csv(). As únicas diferenças são que o formato do arquivo de saída está em .txt e você precisa especificar um separador usando o argumento sep.

df.to_csv('diabetes_out.txt', header=df.columns, index=None, sep=' ')

Saída de um DataFrame para um arquivo do Excel

Chame .to_excel() do objeto DataFrame para salvá-lo como um arquivo “.xls” ou “.xlsx”.

df.to_excel("diabetes_out.xlsx", index=False)

Visualização e compreensão de DataFrames usando pandas 

Depois de ler dados tabulares como um DataFrame, você precisará ter uma visão geral dos dados. Você pode visualizar uma pequena amostra do conjunto de dados ou um resumo dos dados na forma de estatísticas resumidas.

Como visualizar dados usando .head() e .tail()

Você pode visualizar as primeiras ou as últimas linhas de um DataFrame usando os métodos .head() ou .tail(), respectivamente. Você pode especificar o número de linhas por meio do argumento n (o valor padrão é 5).

df.head()

As cinco primeiras linhas do DataFrame (df) usando .head()

As primeiras cinco linhas do DataFrame 

df.tail(n = 10)

últimas 10 linhas de um Dataframe com df.head()

Primeiras 10 linhas do DataFrame 

Compreensão de dados usando .describe()

O método .describe() imprime as estatísticas resumidas de todas as colunas numéricas, como contagem, média, desvio padrão, intervalo e quartis de colunas numéricas.

df.describe()

Obtenha estatísticas resumidas com .describe()

Obtenha estatísticas resumidas com .describe()

Ele oferece uma visão rápida da escala, da inclinação e do intervalo dos dados numéricos.

Você também pode modificar os quartis usando o argumento percentiles. Aqui, por exemplo, estamos analisando os percentis de 30%, 50% e 70% das colunas numéricas no DataFrame df.

df.describe(percentiles=[0.3, 0.5, 0.7])

Obter estatísticas resumidas com percentis específicos pandas

Obter estatísticas resumidas com percentis específicos 

Você também pode isolar tipos de dados específicos na saída do resumo usando o argumento include. Aqui, por exemplo, estamos resumindo apenas as colunas com o tipo de dados integer

df.describe(include=[int])

estatísticas resumidas de colunas inteiras somente em pandas

Obter estatísticas resumidas somente de colunas inteiras 

Da mesma forma, você pode querer excluir determinados tipos de dados usando o argumento exclude.

df.describe(exclude=[int])

obter estatísticas resumidas de colunas não-inteiras pandas

Obter estatísticas resumidas somente de colunas não inteiras 


Geralmente, os profissionais acham fácil visualizar essas estatísticas transpondo-as com o atributo .T.

df.describe().T

Transpor estatísticas resumidas do pandas

Transpor estatísticas resumidas com .T


Para saber mais sobre a descrição de DataFrames, confira a folha de dicas a seguir.

Aprenda os fundamentos dos pandas

Python for Spreadsheet Users

BeginnerSkill Level
4 hr
26.9K learners
Use your knowledge of common spreadsheet functions and techniques to explore Python!
See DetailsRight Arrow

Compreensão de dados usando .info()

O método .info() é uma maneira rápida de examinar os tipos de dados, os valores ausentes e o tamanho dos dados de um DataFrame. Aqui, estamos definindo o argumento show_counts como True, que fornece alguns valores sobre o total de valores não ausentes em cada coluna. Também estamos definindo memory_usage como True, que mostra o uso total de memória dos elementos do DataFrame. Quando verbose é definido como True, ele imprime o resumo completo de .info()

df.info(show_counts=True, memory_usage=True, verbose=True)

image26.png

Compreender seus dados usando .shape

O número de linhas e colunas de um DataFrame pode ser identificado usando o atributo .shape do DataFrame. Ele retorna uma tupla (linha, coluna) e pode ser indexado para obter apenas linhas, e apenas colunas contam como saída.

df.shape # Get the number of rows and columns
df.shape[0] # Get the number of rows only
df.shape[1] # Get the number of columns only
(768,9)
768
9

Obter todas as colunas e nomes de colunas

A chamada do atributo .columns de um objeto DataFrame retorna os nomes das colunas na forma de um objeto Index. Como lembrete, um índice pandas é o endereço/rótulo da linha ou coluna.

df.columns

Saída de colunas

Ele pode ser convertido em uma lista usando a função list().

list(df.columns)

nomes de colunas como uma lista pandas

Verificação de valores ausentes no pandas com .isnull()

O DataFrame de amostra não tem nenhum valor ausente. Vamos apresentar alguns para tornar as coisas interessantes. O método .copy() faz uma cópia do DataFrame original. Isso é feito para garantir que qualquer alteração na cópia não seja refletida no DataFrame original. Usando .loc (a ser discutido mais tarde), você pode definir as linhas de dois a cinco da coluna Pregnancies como valores NaN, que denotam valores ausentes.

df2 = df.copy()
df2.loc[2:5,'Pregnancies'] = None
df2.head(7)

As linhas 2 a 5 não têm pandas

Você pode ver que agora as linhas 2 a 5 são NaN

Você pode verificar se cada elemento em um DataFrame está ausente usando o método .isnull().

df2.isnull().head(7)

Como geralmente é mais útil saber a quantidade de dados ausentes, você pode combinar .isnull() com .sum() para contar o número de nulos em cada coluna.

df2.isnull().sum()
Pregnancies                 4
Glucose                     0
BloodPressure               0
SkinThickness               0
Insulin                     0
BMI                         0
DiabetesPedigreeFunction    0
Age                         0
Outcome                     0
dtype: int64

Você também pode fazer uma soma dupla para obter o número total de nulos no DataFrame.

df2.isnull().sum().sum()
4

Cortando e extraindo dados no pandas

O pacote pandas oferece várias maneiras de subconjunto, filtro e isolamento de dados em seus DataFrames. Aqui, veremos as formas mais comuns.

Isolando uma coluna usando [ ] 

Você pode isolar uma única coluna usando um colchete [ ] com o nome de uma coluna. O resultado é um objeto pandas Series. Uma série pandas é uma matriz unidimensional que contém dados de qualquer tipo, incluindo inteiros, flutuantes, strings, booleanos, objetos python etc. Um DataFrame é composto de muitas séries que funcionam como colunas.

df['Outcome']

Isolando uma coluna no pandas

Isolando uma coluna no pandas

Isolando duas ou mais colunas usando [[ ]] 

Você também pode fornecer uma lista de nomes de coluna dentro dos colchetes para buscar mais de uma coluna. Aqui, os colchetes são usados de duas maneiras diferentes. Usamos os colchetes externos para indicar um subconjunto de um DataFrame e os colchetes internos para criar uma lista.

df[['Pregnancies', 'Outcome']]

image15.png

Isolamento de duas colunas no pandas

Isolando uma linha usando [ ] 

Uma única linha pode ser obtida se você passar uma série booleana com um valor True. No exemplo abaixo, a segunda linha com index = 1 é retornada. Aqui, .index retorna os rótulos de linha do DataFrame, e a comparação transforma isso em uma matriz unidimensional booleana.

df[df.index==1]

Isolamento de uma linha no pandas

Isolamento de uma linha no pandas

Isolando duas ou mais linhas usando [ ] 

Da mesma forma, duas ou mais linhas podem ser retornadas usando o método .isin() em vez de um operador ==.

df[df.index.isin(range(2,10))]

Isolamento de linhas específicas no pandas

Isolamento de linhas específicas no pandas

Usando .loc[] e .iloc[] para buscar linhas

Você pode buscar linhas específicas por rótulos ou condições usando .loc[] e .iloc[] ("location" e "integer location"). .loc[] usa um rótulo para apontar para uma linha, coluna ou célula, enquanto .iloc[] usa a posição numérica. Para entender a diferença entre os dois, vamos modificar o índice de df2 criado anteriormente.

df2.index = range(1,769)

O exemplo abaixo retorna um pandas Series em vez de um DataFrame. O 1 representa o índice da linha (rótulo), enquanto o 1 em .iloc[] é a posição da linha (primeira linha).

df2.loc[1]
Pregnancies                   6.000
Glucose                     148.000
BloodPressure                72.000
SkinThickness                35.000
Insulin                       0.000
BMI                          33.600
DiabetesPedigreeFunction      0.627
Age                          50.000
Outcome                       1.000
Name: 1, dtype: float64
df2.iloc[1]
Pregnancies                  1.000
Glucose                     85.000
BloodPressure               66.000
SkinThickness               29.000
Insulin                      0.000
BMI                         26.600
DiabetesPedigreeFunction     0.351
Age                         31.000
Outcome                      0.000
Name: 2, dtype: float64

Você também pode buscar várias linhas fornecendo um intervalo entre colchetes.

df2.loc[100:110]

Isolamento de linhas com loc

Isolamento de linhas no pandas com .loc[]

df2.iloc[100:110]

Isolamento de linhas no pandas com .loc[]

Isolamento de linhas no pandas com .iloc[]

Você também pode fazer um subconjunto com .loc[] e .iloc[] usando uma lista em vez de um intervalo.

df2.loc[[100, 200, 300]]

Isolamento de linhas usando uma lista no pandas com .loc[]

Isolamento de linhas usando uma lista no pandas com .loc[]

df2.iloc[[100, 200, 300]]

image25.png

Isolamento de linhas usando uma lista no pandas com .iloc[]

Você também pode selecionar colunas específicas junto com as linhas. É nesse ponto que o .iloc[] é diferente do .loc[] - ele exige a localização da coluna e não os rótulos da coluna.

df2.loc[100:110, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolamento de colunas usando uma lista no pandas com .loc[]

Isolamento de colunas no pandas com .loc[]

df2.iloc[100:110, :3]

Isolamento de colunas usando em pandas com .iloc[]

Isolamento de colunas com .iloc[]

Para fluxos de trabalho mais rápidos, você pode passar o índice inicial de uma linha como um intervalo.

df2.loc[760:, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolamento de colunas usando em pandas com .loc[]

Isolamento de colunas e linhas no pandas com .loc[]

df2.iloc[760:, :3]

image4.png
Isolando colunas e linhas no pandas com .iloc[]

Você pode atualizar/modificar determinados valores usando o operador de atribuição =

df2.loc[df['Age']==81, ['Age']] = 80

Fatiamento condicional (que se encaixa em determinadas condições)

O pandas permite que você filtre dados por condições sobre valores de linha/coluna. Por exemplo, o código abaixo seleciona a linha em que a pressão arterial é exatamente 122. Aqui, estamos isolando as linhas usando os colchetes [ ], conforme visto nas seções anteriores. No entanto, em vez de inserir índices de linha ou nomes de coluna, estamos inserindo uma condição em que a coluna BloodPressure é igual a 122. Denotamos essa condição usando df.BloodPressure == 122.

df[df.BloodPressure == 122]

Isolamento de linhas com base em uma condição no pandas

Isolamento de linhas com base em uma condição no pandas 

O exemplo abaixo buscou todas as linhas em que Outcome é 1. Aqui, df.Outcome seleciona essa coluna, df.Outcome == 1 retorna uma série de valores booleanos determinando quais Outcomes são iguais a 1 e, em seguida, [] obtém um subconjunto de df em que essa série booleana é True.

df[df.Outcome == 1]

Isolamento de linhas com base em uma condição no pandas

Isolamento de linhas com base em uma condição no pandas 

Você pode usar um operador > para fazer comparações. O código abaixo busca Pregnancies, Glucose e BloodPressure para todos os registros com BloodPressure maior que 100.

df.loc[df['BloodPressure'] > 100, ['Pregnancies', 'Glucose', 'BloodPressure']]

Isolamento de linhas e colunas com base em uma condição no pandas

Isolamento de linhas e colunas com base em uma condição no pandas 

Limpeza de dados usando pandas 

A limpeza de dados é uma das tarefas mais comuns na ciência de dados. O pandas permite que você pré-processe dados para qualquer uso, incluindo, entre outros, o treinamento de modelos de aprendizado de máquina e aprendizado profundo. Vamos usar o DataFrame df2 de antes, com quatro valores ausentes, para ilustrar alguns casos de uso de limpeza de dados. Como lembrete, veja como você pode ver quantos valores estão faltando em um DataFrame.

df2.isnull().sum()
Pregnancies                 4
Glucose                     0
BloodPressure               0
SkinThickness               0
Insulin                     0
BMI                         0
DiabetesPedigreeFunction    0
Age                         0
Outcome                     0
dtype: int64

Lidando com a técnica de dados ausentes nº 1: Eliminação de valores ausentes

Uma maneira de lidar com dados ausentes é eliminá-los. Isso é particularmente útil nos casos em que você tem muitos dados e a perda de uma pequena parte não afetará a análise downstream. Você pode usar um método .dropna() conforme mostrado abaixo. Aqui, estamos salvando os resultados de .dropna() em um DataFrame df3.

df3 = df2.copy()
df3 = df3.dropna()
df3.shape
(764, 9) # this is 4 rows less than df2

O argumento axis permite que você especifique se está descartando linhas ou colunas com valores ausentes. O padrão axis remove as linhas que contêm NaNs. Use axis = 1 para remover as colunas com um ou mais valores NaN. Além disso, observe como estamos usando o argumento inplace=True, que permite que você ignore o salvamento da saída de .dropna() em um novo DataFrame.  

df3 = df2.copy()
df3.dropna(inplace=True, axis=1)
df3.head()

Eliminação de pandas de dados ausentes

Eliminação de dados ausentes no pandas

Você também pode eliminar linhas e colunas com valores ausentes, definindo o argumento how como 'all'

df3 = df2.copy()
df3.dropna(inplace=True, how='all')

Lidar com a técnica de dados ausentes nº 2: Substituição de valores ausentes

Em vez de eliminar, substituir os valores ausentes por uma estatística resumida ou um valor específico (dependendo do caso de uso) talvez seja o melhor caminho a seguir. Por exemplo, se houver uma linha faltante em uma coluna de temperatura que indique as temperaturas ao longo dos dias da semana, substituir esse valor faltante pela temperatura média da semana pode ser mais eficaz do que eliminar completamente os valores. Você pode substituir os dados ausentes pela média da linha ou da coluna usando o código abaixo.

df3 = df2.copy()
# Get the mean of Pregnancies
mean_value = df3['Pregnancies'].mean()
# Fill missing values using .fillna()
df3 = df3.fillna(mean_value)

Como lidar com dados duplicados

Vamos adicionar algumas duplicatas aos dados originais para que você saiba como eliminar duplicatas em um DataFrame. Aqui, estamos usando o método .concat() para concatenar as linhas do DataFrame df2 ao DataFrame df2, adicionando duplicatas perfeitas de cada linha em df2

df3 = pd.concat([df2, df2])
df3.shape
(1536, 9)

Você pode remover todas as linhas duplicadas (padrão) do DataFrame usando o método .drop_duplicates() .

df3 = df3.drop_duplicates()
df3.shape
(768, 9)

Renomear colunas

Uma tarefa comum de limpeza de dados é renomear colunas. Com o método .rename(), você pode usar columns como um argumento para renomear colunas específicas. O código abaixo mostra o dicionário para mapear nomes de colunas antigos e novos.

df3.rename(columns = {'DiabetesPedigreeFunction':'DPF'}, inplace = True)
df3.head()

Renomear colunas no pandas

Renomear colunas no pandas

Você também pode atribuir diretamente nomes de colunas como uma lista ao DataFrame.

df3.columns = ['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DPF', 'Age', 'Outcome', 'STF']
df3.head()

Renomear colunas no pandas

Renomear colunas no pandas

Para saber mais sobre limpeza de dados e para obter fluxos de trabalho de limpeza de dados mais fáceis e previsíveis, confira a lista de verificação a seguir, que fornece a você um conjunto abrangente de tarefas comuns de limpeza de dados

Análise de dados em pandas

A principal proposta de valor do pandas está em sua funcionalidade de análise rápida de dados. Nesta seção, vamos nos concentrar em um conjunto de técnicas de análise que você pode usar no pandas.

Operadores de resumo (média, moda, mediana)

Como você viu anteriormente, é possível obter a média de cada valor de coluna usando o método .mean().

df.mean()

Imprimir a média das colunas no pandas

Imprimir a média das colunas no pandas

Um modo pode ser calculado de forma semelhante usando o método .mode()

df.mode()

image22.png

Imprimir o modo das colunas no pandas

Da mesma forma, a mediana de cada coluna é calculada com o método .median()

df.median()

Imprimindo a mediana das colunas no pandas
Imprimindo a mediana das colunas em pandas

Criar novas colunas com base em colunas existentes 

O pandas fornece computação rápida e eficiente ao combinar duas ou mais colunas como variáveis escalares. O código abaixo divide cada valor na coluna Glucose com o valor correspondente na coluna Insulin para calcular uma nova coluna chamada Glucose_Insulin_Ratio.

df2['Glucose_Insulin_Ratio'] = df2['Glucose']/df2['Insulin']
df2.head()

Criar uma nova coluna a partir de colunas existentes no pandas

Criar uma nova coluna a partir de colunas existentes no pandas

Contagem usando .value_counts()

Muitas vezes, você trabalhará com valores categóricos e desejará contar o número de observações que cada categoria tem em uma coluna. Os valores de categoria podem ser contados usando os métodos .value_counts(). Aqui, por exemplo, estamos contando o número de observações em que o Outcome é diabético (1) e o número de observações em que o Outcome não é diabético (0).

df['Outcome'].value_counts()

Usando .value_counts() no pandas

Usando .value_counts() em pandas

Ao adicionar o argumento normalize, você retorna proporções em vez de contagens absolutas.

df['Outcome'].value_counts(normalize=True)

Usando .value_counts() no pandas com normalização

Usando .value_counts() em pandas com normalização


Desative a classificação automática dos resultados usando o argumento sort (True por padrão). A classificação padrão é baseada nas contagens em ordem decrescente.

df['Outcome'].value_counts(sort=False)

Usando .value_counts() no pandas com normalização

Usando .value_counts() em pandas com classificação

Você também pode aplicar o .value_counts() a um objeto DataFrame e a colunas específicas dentro dele, em vez de apenas a uma coluna. Aqui, por exemplo, estamos aplicando value_counts() em df com o argumento de subconjunto, que recebe uma lista de colunas. 

df.value_counts(subset=['Pregnancies', 'Outcome'])

Uso de .value_counts() no pandas durante o subconjunto de colunas

Usando .value_counts() em pandas durante o subconjunto de colunas

Agregação de dados com .groupby() em pandas

O pandas permite que você agregue valores agrupando-os por valores de coluna específicos. Você pode fazer isso combinando o método .groupby() com um método de resumo de sua escolha. O código abaixo exibe a média de cada uma das colunas numéricas agrupadas por Outcome.

df.groupby('Outcome').mean()

Agregando dados por uma coluna no pandas

Agregando dados por uma coluna no pandas

.groupby() permite que você agrupe por mais de uma coluna, passando uma lista de nomes de colunas, como mostrado abaixo.

df.groupby(['Pregnancies', 'Outcome']).mean()

Agregando dados por duas colunas no pandas

Agregando dados por duas colunas no pandas

Qualquer método de resumo pode ser usado junto com .groupby(), incluindo .min(), .max(), .mean(), .median(), .sum(), .mode(), entre outros.

Tabelas dinâmicas 

O pandas também permite que você calcule estatísticas resumidas como tabelas dinâmicas. Isso facilita tirar conclusões com base em uma combinação de variáveis. O código abaixo seleciona as linhas como valores exclusivos de Pregnancies, os valores da coluna são os valores exclusivos de Outcome e as células contêm o valor médio de BMI no grupo correspondente.

Por exemplo, para Pregnancies = 5 e Outcome = 0, o IMC médio é de 31,1.

pd.pivot_table(df, values="BMI", index='Pregnancies', 
               columns=['Outcome'], aggfunc=np.mean)

Agregação de dados por meio de dinamização com pandas

Agregação de dados por meio de dinamização com pandas

Visualização de dados no pandas

O pandas fornece wrappers convenientes para as funções de plotagem do Matplotlib para facilitar a visualização de seus DataFrames. A seguir, você verá como fazer visualizações de dados comuns usando o pandas.

Gráficos de linhas no pandas

O pandas permite que você trace as relações entre as variáveis usando gráficos de linha. Abaixo você encontra um gráfico de linhas do IMC e da glicose em relação ao índice de fileiras.

df[['BMI', 'Glucose']].plot.line()

Gráfico de linhas básico com o pandas

Gráfico de linhas básico com o pandas

Você pode selecionar a opção de cores usando o argumento de cor.

df[['BMI', 'Glucose']].plot.line(figsize=(20, 10), 
                                 color={"BMI": "red", "Glucose": "blue"})

Gráfico de linha básico com pandas, com cores personalizadas

Gráfico de linha básico com pandas, com cores personalizadas

Todas as colunas de df também podem ser plotadas em escalas e eixos diferentes usando o argumento subplots.

df.plot.line(subplots=True)

Subplots para gráficos de linhas com pandas

Subplots para gráficos de linhas com pandas

Gráficos de barras em pandas

Para colunas discretas, você pode usar um gráfico de barras sobre as contagens de categorias para visualizar sua distribuição. A variável Outcome com valores binários é visualizada abaixo.

df['Outcome'].value_counts().plot.bar()

Gráficos de barras em pandas

Gráficos de barras em pandas

Gráficos de caixa em pandas

A distribuição de quartis de variáveis contínuas pode ser visualizada usando um boxplot. O código abaixo permite que você crie um boxplot com o pandas.

df.boxplot(column=['BMI'], by='Outcome')

Boxplots em pandas
Boxplots em pandas

Saiba mais sobre os pandas

No tutorial acima, você pode ver apenas a superfície do que é possível fazer com o pandas. Seja analisando dados, visualizando-os, filtrando-os ou agregando-os, o pandas oferece um conjunto de recursos incrivelmente rico que permite que você acelere qualquer fluxo de trabalho de dados. Além disso, ao combinar o pandas com outros pacotes de ciência de dados, você poderá criar painéis interativos, criar modelos preditivos usando aprendizado de máquina, automatizar fluxos de trabalho de dados e muito mais. Confira os recursos abaixo para acelerar sua jornada de aprendizado com os pandas:

Perguntas frequentes sobre pandas

O que é pandas em Python?

O pandas é uma biblioteca avançada de manipulação de dados em Python. Ele fornece estruturas de dados e funções necessárias para manipular dados estruturados, incluindo funcionalidades para manipular e analisar quadros de dados. É uma ferramenta indispensável no mundo da análise e da ciência de dados, pois permite a limpeza, a transformação e a análise eficientes dos dados.

Por que eu deveria aprender sobre pandas?

Se você estiver trabalhando com dados em Python, o pandas é praticamente um aprendizado obrigatório. Ele simplifica o processo de manipulação e análise de dados, para que você possa se concentrar na extração de insights e na criação de valor. Independentemente de você estar lidando com pequenos conjuntos de dados ou dados em grande escala, o pandas facilitará sua vida com sua velocidade, flexibilidade e estruturas de dados fáceis de usar.

Como faço para instalar o pandas?

Para instalar o pandas, você precisará do Python e do pip (o instalador de pacotes do Python) em seu sistema. Em seguida, você pode instalar o pandas com o comando: pip install pandas. Se você estiver usando um notebook Jupyter em um ambiente como o Anaconda, o pandas vem pré-instalado.

Quais são as estruturas de dados básicas do pandas?

As duas principais estruturas de dados do pandas são a Series e o DataFrame. Uma série é essencialmente uma coluna, e um DataFrame é uma tabela multidimensional composta por uma coleção de séries. Essas estruturas são flexíveis, o que significa que podem conter dados de diferentes tipos (por exemplo, inteiro, string, float).

O pandas é bom para grandes conjuntos de dados?

Sim, o pandas é uma ótima opção para grandes conjuntos de dados. Ele foi projetado para análise eficiente de dados, o que inclui grandes conjuntos de dados. No entanto, lembre-se de que o tamanho dos dados que você pode manipular depende um pouco da memória do seu sistema. Se você estiver lidando com conjuntos de dados extremamente grandes que não cabem na memória, talvez seja necessário usar outras ferramentas ou técnicas (como chunking ou uso de dask).

Como faço para importar dados para o pandas?

O pandas pode ler dados de vários formatos de arquivo, como CSV, Excel, bancos de dados SQL, JSON e outros. Os comandos pd.read_csv(), pd.read_excel(), pd.read_sql() e pd.read_json() são usados para importar dados dos respectivos tipos de arquivo. Todos esses comandos retornam um DataFrame, que você pode manipular usando o pandas.

Temas

Mais cursos sobre pandas

Course

Introduction to Python

4 hr
5.6M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow
Relacionado

blog

Como aprender Python do zero em 2024: um guia especializado

Descubra como aprender Python, suas aplicações e a demanda por competências em Python. Comece sua jornada em Python hoje mesmo ​com nosso guia detalhado.
Matt Crabtree's photo

Matt Crabtree

19 min

tutorial

Tutorial do Python Excel: O guia definitivo

Saiba como ler e importar arquivos do Excel em Python, gravar dados nessas planilhas e encontrar os melhores pacotes para fazer isso.
Natassha Selvaraj's photo

Natassha Selvaraj

30 min

tutorial

Pandas Tutorial: DataFrames em Python

Explore a análise de dados com Python. Os DataFrames do Pandas facilitam a manipulação de seus dados, desde a seleção ou substituição de colunas e índices até a remodelagem dos dados.
Karlijn Willems's photo

Karlijn Willems

20 min

tutorial

Tutorial de junção de DataFrames no pandas

Neste tutorial, você aprenderá várias maneiras pelas quais vários DataFrames podem ser mesclados em python usando a biblioteca Pandas.
DataCamp Team's photo

DataCamp Team

19 min

tutorial

Tutorial de seleção de colunas em Python

Use o Python Pandas e selecione colunas de DataFrames. Siga nosso tutorial com exemplos de código e aprenda diferentes maneiras de selecionar seus dados hoje mesmo!
DataCamp Team's photo

DataCamp Team

7 min

tutorial

Perfilamento do Pandas (ydata-profiling) em Python: Um guia para iniciantes

Saiba como usar a biblioteca ydata-profiling em Python para gerar relatórios detalhados para conjuntos de dados com muitos recursos.
Satyam Tripathi's photo

Satyam Tripathi

9 min

See MoreSee More