Folha de Dicas do Pandas (Cheat Sheet)
Guia detalhado para usar a biblioteca Pandas.
Instalação do Pandas
| Comando | Descrição |
|---|---|
conda install pandas |
A melhor maneira de obter o pandas é via conda |
python3 -m pip install --upgrade pandas |
Via PyPI |
pip install pandas |
Instalação padrão via pip |
Abreviações principais e importação de pacotes
| Abreviação | Descrição |
|---|---|
df |
Qualquer objeto Pandas DataFrame |
s |
Qualquer objeto Pandas Series |
Métodos de importação
| Comando | Descrição |
|---|---|
import pandas as pd |
Importar pandas com o alias pd |
import numpy as np |
Importar numpy com o alias np |
Seleção de dados
| Comando | Descrição |
|---|---|
df[col] |
Retorna uma coluna como Series baseada no nome da coluna |
df[[col1, col2]] |
Retorna várias colunas como DataFrame |
s.iloc[0] |
Selecionar dados por posição |
s.loc['index_one'] |
Selecionar dados por índice |
df.iloc[0,:] |
Retorna a primeira linha |
df.iloc[0,0] |
Retorna o primeiro elemento da primeira coluna |
Limpeza de dados
| Comando | Descrição |
|---|---|
df.columns = ['a','b','c'] |
Renomear colunas |
pd.isnull() |
Verifica valores nulos em um DataFrame; retorna um array booleano |
pd.notnull() |
Verifica valores não nulos em um DataFrame; retorna um array booleano |
df.dropna() |
Exclui todas as linhas que contêm valores nulos |
df.dropna(axis=1) |
Exclui todas as colunas que contêm valores nulos |
df.dropna(axis=1, thresh=n) |
Exclui todas as linhas com menos de n valores não nulos |
df.fillna(x) |
Substitui todos os valores nulos em um DataFrame por x |
s.astype(float) |
Converte o tipo de dados da Series para float |
s.replace(1, 'one') |
Substitui todos os valores iguais a 1 por ‘one’ |
s.replace([1,3], ['one', 'three']) |
Substitui 1 com ‘one’ e 3 com ’three’ |
df.rename(columns=lambda x: x + 1) |
Renomear colunas em lote |
df.rename(columns={'old_name': 'new_name'}) |
Renomear colunas seletivamente |
df.set_index('column_one') |
Alterar a coluna de índice |
df.rename(index=lambda x: x + 1) |
Renomear índices em lote |
Importação de dados
| Comando | Descrição |
|---|---|
pd.read_csv(filename) |
Importar dados de um arquivo CSV |
pd.read_table(filename) |
Importar dados de um arquivo de texto delimitado |
pd.read_excel(filename) |
Importar dados de um arquivo Excel |
pd.read_sql(query, connection_object) |
Importar dados de uma tabela/banco de dados SQL |
pd.read_json(json_string) |
Importar dados de uma string JSON |
pd.read_html(url) |
Extrair tabelas de um URL, string ou arquivo HTML |
pd.read_clipboard() |
Busca conteúdo da área de transferência e o passa para read_table() |
pd.DataFrame(dict) |
Importar dados de um objeto de dicionário (as chaves são nomes de colunas, os valores são dados) |
Exportação de dados
| Comando | Descrição |
|---|---|
df.to_csv(filename) |
Exportar dados para um arquivo CSV |
df.to_excel(filename) |
Exportar dados para um arquivo Excel |
df.to_sql(table_name, connection_object) |
Exportar dados para uma tabela SQL |
df.to_json(filename) |
Exportar dados para um arquivo de texto no formato JSON |
Processamento de dados: Filter, Sort e GroupBy
| Comando | Descrição |
|---|---|
df[df[col] > 0.5] |
Selecionar linhas onde o valor na coluna ‘col’ é > 0,5 |
df.sort_values(col1) |
Ordenar dados pela coluna col1 (crescente por padrão) |
df.sort_values(col2, ascending=False) |
Ordenar dados pela coluna col2 em ordem decrescente |
df.sort_values([col1, col2], ascending=[True, False]) |
Ordenar por col1 crescente e depois por col2 decrescente |
df.groupby(col) |
Retorna um objeto GroupBy agrupado pela coluna ‘col’ |
df.groupby([col1, col2]) |
Retorna um objeto GroupBy agrupado por várias colunas |
df.groupby(col1)[col2].mean() |
Retorna a média da coluna col2 para cada grupo em col1 |
df.pivot_table(index=col1, values=[col2, col3], aggfunc=max) |
Criar uma tabela dinâmica agrupada por col1, calculando o máximo para col2 e col3 |
df.groupby(col1).agg(np.mean) |
Retorna a média de todas as colunas agrupadas por col1 |
df.apply(np.mean) |
Aplicar a função np.mean a cada coluna |
df.apply(np.max, axis=1) |
Aplicar a função np.max a cada linha |
Criação de objetos de teste
| Comando | Descrição |
|---|---|
pd.DataFrame(np.random.rand(20,5)) |
Criar um DataFrame com 20 linhas e 5 colunas de números aleatórios |
pd.Series(my_list) |
Criar uma Series de um objeto iterável my_list |
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) |
Adicionar um índice de data |
Visualização e inspeção de dados
| Comando | Descrição |
|---|---|
df.head(n) |
Visualizar as primeiras n linhas de um DataFrame |
df.tail(n) |
Visualizar as últimas n linhas de um DataFrame |
df.shape |
Visualizar o número de linhas e colunas |
df.info() |
Visualizar índice, tipos de dados e informações de memória |
df.describe() |
Visualizar estatísticas resumidas para colunas numéricas |
s.value_counts(dropna=False) |
Visualizar valores únicos e contagens para uma Series |
df.apply(pd.Series.value_counts) |
Visualizar valores únicos e contagens para cada coluna em um DataFrame |
Fusão de dados
| Comando | Descriere |
|---|---|
df1.append(df2) |
Acrescentar linhas de df2 ao final de df1 |
pd.concat([df1, df2], axis=1) |
Acrescentar colunas de df2 ao final de df1 |
df1.join(df2, on=col1, how='inner') |
Join estilo SQL entre colunas de df1 e df2 |
Estatísticas de dados
| Comando | Descrição |
|---|---|
df.describe() |
Visualizar estatísticas resumidas para colunas numéricas |
df.mean() |
Retorna a média de todas as colunas |
df.corr() |
Retorna o coeficiente de correlação entre colunas |
df.count() |
Retorna o número de valores não nulos em cada coluna |
df.max() |
Retorna o valor máximo de cada coluna |
df.min() |
Retorna o valor mínimo de cada coluna |
df.median() |
Retorna a mediana de cada coluna |
df.std() |
Retorna o desvio padrão de cada coluna |