📄 Documentação Oficial do Pandas
| # | Comando / Função | O que faz | Exemplo |
|---|---|---|---|
| 1 | pd.read_csv() | Carrega um arquivo CSV para um DataFrame | df = pd.read_csv('dados.csv') |
| 2 | pd.read_excel() | Carrega uma folha de cálculo Excel | df = pd.read_excel('vendas.xlsx') |
| 3 | pd.DataFrame() | Cria um DataFrame a partir de um dicionário/lista | df = pd.DataFrame({'A': [1, 2]}) |
| 4 | df.to_csv() | Salva o DataFrame num arquivo CSV | df.to_csv('saida.csv', index=False) |
| 5 | df.head() | Exibe as primeiras 5 linhas | df.head(10) |
| 6 | df.tail() | Exibe as últimas 5 linhas | df.tail() |
| 7 | df.info() | Resumo do índice, colunas e tipos de dados | df.info() |
| 8 | df.describe() | Estatísticas descritivas (média, desvio padrão, etc) | df.describe() |
| 9 | df.shape | Retorna o número de linhas e colunas | df.shape |
| 10 | df.columns | Lista os nomes de todas as colunas | df.columns |
| 11 | df.dtypes | Mostra o tipo de cada coluna | df.dtypes |
| 12 | df['coluna'] | Seleciona uma coluna específica | df['nome'] |
| 13 | df[['c1', 'c2']] | Seleciona múltiplas colunas | df[['idade', 'sexo']] |
| 14 | df.iloc[] | Seleção baseada em posição inteira | df.iloc[0:5, 0:2] |
| 15 | df.loc[] | Seleção baseada em rótulos/nomes | df.loc[df['idade'] > 18] |
| 16 | df.query() | Filtra linhas usando uma expressão string | df.query('vendas > 1000') |
| 17 | df.sample() | Retorna uma amostra aleatória de linhas | df.sample(n=10) |
| 18 | df.isnull() | Verifica valores nulos (NaN) | df.isnull().sum() |
| 19 | df.dropna() | Remove linhas que contêm valores nulos | df.dropna(axis=0) |
| 20 | df.fillna() | Substitui valores nulos por um valor específico | df.fillna(0) |
| 21 | df.drop() | Remove colunas ou linhas específicas | df.drop(columns=['id']) |
| 22 | df.rename() | Altera nomes de colunas ou índices | df.rename(columns={'old': 'new'}) |
| 23 | df.drop_duplicates() | Remove linhas duplicadas | df.drop_duplicates() |
| 24 | df.astype() | Converte o tipo de dado de uma coluna | df['id'].astype(str) |
| 25 | df.sort_values() | Ordena o DataFrame por uma ou mais colunas | df.sort_values('data', ascending=False) |
| 26 | df.apply() | Aplica uma função a cada linha/coluna | df['preco'].apply(np.log) |
| 27 | df.map() | Substitui valores usando um dicionário | df['sexo'].map({'M': 0, 'F': 1}) |
| 28 | df.assign() | Cria novas colunas baseadas em existentes | df.assign(total = df.q * df.p) |
| 29 | pd.to_datetime() | Converte strings para objetos de data | pd.to_datetime(df['data']) |
| 30 | df.groupby() | Agrupa dados para aplicar funções agregadas | df.groupby('categoria').sum() |
| 31 | df.agg() | Aplica múltiplas funções de agregação | df.agg(['mean', 'std']) |
| 32 | df.value_counts() | Conta ocorrências de valores únicos | df['cor'].value_counts() |
| 33 | df.unique() | Retorna valores únicos de uma coluna | df['cidade'].unique() |
| 34 | df.nunique() | Conta quantos valores únicos existem | df.nunique() |
| 35 | pd.pivot_table() | Cria uma tabela dinâmica (estilo Excel) | df.pivot_table(index='A', values='B') |
| 36 | pd.concat() | Concatena DataFrames (empilha ou lado a lado) | pd.concat([df1, df2]) |
| 37 | df.merge() | Faz o "JOIN" entre dois DataFrames | df1.merge(df2, on='id', how='left') |
| 38 | df.join() | Une DataFrames baseando-se no índice | df1.join(df2) |
| 39 | df.resample() | Reamostra dados temporais (ex: mensal, anual) | df.resample('M').mean() |
| 40 | df.shift() | Desloca os dados no tempo (útil para lags) | df['anterior'] = df['vendas'].shift(1) |
| 41 | df.rolling() | Cria janelas móveis (média móvel) | df['media_movel'] = df.val.rolling(7).mean() |
| 42 | df.plot() | Gera gráficos básicos usando Matplotlib | df.plot(kind='line') |
| 43 | df.hist() | Gera histogramas das colunas numéricas | df.hist(bins=20) |
| 44 | df['col'].str.contains() | Verifica se uma string contém um padrão/substring | df[df['nome'].str.contains('Silva')] |
| 45 | df['col'].str.lower() | Converte todo o texto para minúsculas | df['email'] = df['email'].str.lower() |
| 46 | df['col'].str.upper() | Converte todo o texto para maiúsculas | df['sigla'] = df['sigla'].str.upper() |
| 47 | df['col'].str.split() | Divide uma string em uma lista baseada em um separador | df['nome'].str.split(' ', expand=True) |
| 48 | df['col'].str.replace() | Substitui um padrão por outro (suporta Regex) | df['tel'].str.replace('-', '') |
| 49 | df['col'].str.strip() | Remove espaços em branco no início e fim | df['nome'].str.strip() |
| 50 | df['col'].str.len() | Retorna o comprimento de cada string na coluna | df['tamanho'] = df['comentario'].str.len() |
| 51 | df['col'].str.startswith() | Filtra strings que começam com um prefixo | df[df['cod'].str.startswith('A')] |
| 52 | df.isin() | Filtra valores que estejam em uma lista | df[df['id'].isin([1, 5, 10])] |
| 53 | df.where() | Substitui valores onde a condição é falsa | df.where(df > 0, 0) |
| 54 | df.mask() | Substitui valores onde a condição é verdadeira | df.mask(df < 0, 0) |
| 55 | df.filter() | Filtra colunas ou linhas por nome/regex | df.filter(regex='venda_') |
| 56 | df.select_dtypes() | Seleciona colunas por tipo de dado | df.select_dtypes(include=['number']) |
| 57 | df.at[] | Acessa um valor único (mais rápido que .loc) | df.at[0, 'nome'] |
| 58 | df.iat[] | Acessa valor único por posição inteira | df.iat[0, 0] |
| 59 | df.pct_change() | Calcula a variação percentual entre linhas | df['variacao'] = df['preco'].pct_change() |
| 60 | df.rank() | Atribui ranks (posições) aos valores | df['rank'] = df['vendas'].rank(ascending=False) |
| 61 | df.cumprod() | Calcula o produto acumulado | df['retorno_acum'] = df['retorno'].cumprod() |
| 62 | df.cumsum() | Calcula a soma acumulada | df['vendas_total'] = df['vendas'].cumsum() |
| 63 | df.memory_usage() | Mostra o consumo de memória de cada coluna | df.memory_usage(deep=True) |
| 64 | df.corr() | Calcula a matriz de correlação entre colunas | df.corr() |
| 65 | df.cov() | Calcula a covariância entre as colunas | df.cov() |
| 66 | df.melt() | Transforma colunas em linhas (unpivot) | pd.melt(df, id_vars=['id']) |
| 67 | df.pivot() | Remodela os dados (longo para largo) | df.pivot(index='data', columns='item') |
| 68 | df.stack() | "Empilha" as colunas no índice (hierárquico) | df.stack() |
| 69 | df.unstack() | Move o último nível do índice para colunas | df.unstack() |
| 70 | df.explode() | Transforma cada elemento de uma lista em uma linha | df.explode('tags') |
| 71 | df.transpose() | Inverte linhas e colunas (T) | df.T |
| 72 | df['data'].dt.year | Extrai o ano de uma coluna de data | df['ano'] = df['data'].dt.year |
| 73 | df['data'].dt.month | Extrai o mês de uma coluna de data | df['mes'] = df['data'].dt.month |
| 74 | df['data'].dt.day_name() | Retorna o nome do dia da semana | df['dia_semana'] = df['data'].dt.day_name() |
| 75 | df['data'].dt.days_in_month | Retorna quantos dias tem o mês daquela data | df['dias_mes'] = df['data'].dt.days_in_month |
| 76 | df.tz_localize() | Define o fuso horário (Timezone) | df['data'].dt.tz_localize('UTC') |
| 77 | df.set_index() | Define uma coluna como índice do DataFrame | df.set_index('id') |
| 78 | df.reset_index() | Transforma o índice em uma coluna comum | df.reset_index(drop=True) |
| 79 | df.reindex() | Reorganiza o DataFrame para um novo índice | df.reindex(novo_indice) |
| 80 | df.sort_index() | Ordena o DataFrame pelo índice | df.sort_index() |
| 81 | pd.read_sql() | Lê dados de um banco de dados SQL | pd.read_sql('SELECT * FROM tab', conn) |
| 82 | pd.read_json() | Carrega um arquivo JSON | df = pd.read_json('dados.json') |
| 83 | df.to_excel() | Exporta o DataFrame para Excel | df.to_excel('relatorio.xlsx') |
| 84 | df.to_json() | Exporta o DataFrame para JSON | df.to_json('saida.json') |
| 85 | pd.read_clipboard() | Lê dados copiados na área de transferência | df = pd.read_clipboard() |
| 86 | pd.read_html() | Extrai tabelas de uma página web/HTML | tabelas = pd.read_html('http://site.com') |
| 87 | df.copy() | Cria uma cópia profunda do DataFrame | df_new = df.copy() |
| 88 | df.nlargest() | Retorna as N linhas com maiores valores | df.nlargest(5, 'valor') |
| 89 | df.nsmallest() | Retorna as N linhas com menores valores | df.nsmallest(3, 'preco') |
| 90 | df.duplicated() | Identifica linhas duplicadas (retorna booleano) | df[df.duplicated()] |
| 91 | pd.get_dummies() | Converte variáveis categóricas em Dummy/One-Hot | pd.get_dummies(df['categoria']) |
| 92 | df.pipe() | Aplica uma sequência de funções ao DF | df.pipe(func1).pipe(func2) |
| 93 | pd.options.display | Configura como o Pandas exibe os dados | pd.options.display.max_columns = 50 |
| 94 | df.combine_first() | Preenche valores nulos com dados de outro DataFrame | df1.combine_first(df2) |
| 95 | df.update() | Modifica o DF original com valores de outro (pelo índice) | df1.update(df2) |
| 96 | df.squeeze() | Converte um DataFrame de uma coluna em uma Series | df.squeeze() |
| 97 | df.truncate() | Corta o DataFrame antes e depois de algum índice | df.truncate(before=2, after=10) |
| 98 | df.first() | Seleciona períodos iniciais baseados em tempo | df.first('3D') # Primeiros 3 dias |
| 99 | df.last() | Seleciona períodos finais baseados em tempo | df.last('1M') # Último mês |
| 100 | df.groupby().transform() | Aplica função e retorna Series com o mesmo tamanho original | df.groupby('A')['B'].transform('mean') |
| 101 | df.groupby().filter() | Filtra grupos baseados em uma condição booleana | df.groupby('A').filter(lambda x: x['B'].sum() > 100) |
| 102 | df.groupby().nth() | Pega a n-ésima linha de cada grupo | df.groupby('cat').nth(0) |
| 103 | df.mad() | Retorna o desvio absoluto médio | df['val'].mad() |
| 104 | df.skew() | Retorna a assimetria (skewness) dos dados | df.skew() |
| 105 | df.kurtosis() | Retorna a curtose (pico) da distribuição | df.kurtosis() |
| 106 | df.sem() | Erro padrão da média | df.sem() |
| 107 | df.diff() | Diferença discreta entre elementos (atual menos anterior) | df['vendas'].diff() |
| 108 | df['col'].str.extract() | Extrai grupos de Regex para novas colunas | df['txt'].str.extract(r'(\d+)') |
| 109 | df['col'].str.count() | Conta ocorrências de um padrão em cada string | df['msg'].str.count('urgente') |
| 110 | df['col'].str.pad() | Adiciona preenchimento (espaços/caracteres) à string | df['id'].str.pad(width=5, fillchar='0') |
| 111 | df['col'].str.zfill() | Preenche strings com zeros à esquerda | df['cod'].str.zfill(10) |
| 112 | df['col'].str.find() | Retorna a posição inicial de uma substring (-1 se não achar) | df['email'].str.find('@') |
| 113 | df['col'].str.repeat() | Repete a string n vezes | df['separador'].str.repeat(3) |
| 114 | df['data'].dt.quarter | Retorna o trimestre (1 a 4) da data | df['trimestre'] = df['data'].dt.quarter |
| 115 | df['data'].dt.is_leap_year | Verifica se o ano é bissexto | df['bissexto'] = df['data'].dt.is_leap_year |
| 116 | df['data'].dt.weekofyear | Retorna a semana do ano | df['semana'] = df['data'].dt.isocalendar().week |
| 117 | pd.DateOffset() | Adiciona/subtrai intervalos de tempo específicos | df['data'] + pd.DateOffset(days=5) |
| 118 | pd.date_range() | Cria uma sequência de datas fixed frequency | pd.date_range(start='2023-01-01', periods=10) |
| 119 | df['data'].dt.normalize() | Zera as horas, mantendo apenas a data | df['so_data'] = df['data'].dt.normalize() |
| 120 | df.isna() | Alias para isnull() (mais comum em outras linguagens) | df.isna().any() |
| 121 | df.notna() | Oposto de isna(); True para valores preenchidos | df[df['email'].notna()] |
| 122 | df.replace() | Substitui valores específicos globalmente | df.replace('?', np.nan) |
| 123 | df.convert_dtypes() | Converte colunas para os melhores tipos possíveis (inferência) | df.convert_dtypes() |
| 124 | df.infer_objects() | Tenta inferir melhores tipos para colunas de 'object' | df.infer_objects() |
| 125 | df.to_dict() | Converte o DataFrame em um dicionário Python | dados = df.to_dict(orient='records') |
| 126 | df.to_html() | Gera o código de uma tabela HTML a partir do DF | html_str = df.to_html() |
| 127 | df.to_markdown() | Exporta a tabela no formato Markdown | print(df.to_markdown()) |
| 128 | df.to_parquet() | Salva em formato Parquet (eficiente para Big Data) | df.to_parquet('dados.parquet') |
| 129 | pd.read_parquet() | Lê um arquivo do tipo Parquet | df = pd.read_parquet('dados.parquet') |
| 130 | df.to_pickle() | Serializa o objeto para um arquivo binário (Pickle) | df.to_pickle('backup.pkl') |
| 131 | df.index.get_loc() | Obtém a posição inteira de um rótulo do índice | pos = df.index.get_loc('2023-05-01') |
| 132 | df.reorder_levels() | Muda a ordem dos níveis em um MultiIndex | df.reorder_levels([1, 0]) |
| 133 | df.swaplevel() | Troca dois níveis do índice | df.swaplevel(0, 1) |
| 134 | df.index.name | Atribui um nome ao índice | df.index.name = 'usuario_id' |
| 135 | df.style.background_gradient() | Cria um mapa de calor nas células (estilo Excel) | df.style.background_gradient(cmap='viridis') |
| 136 | df.style.highlight_max() | Destaca o valor máximo de cada coluna | df.style.highlight_max(color='lightgreen') |
| 137 | df.style.format() | Formata a exibição (casas decimais, %, etc) | df.style.format('{:.2%}') |
| 138 | df.boxplot() | Cria um gráfico de caixa para detectar outliers | df.boxplot(column=['salario']) |
| 139 | pd.show_versions() | Mostra versões do Pandas e dependências (debug) | pd.show_versions() |
| 140 | df.eval() | Executa operações matemáticas usando strings (rápido) | df.eval('C = A + B') |
| 141 | pd.cut() | Transforma valores contínuos em categorias (bins) | pd.cut(df['idade'], bins=[0, 18, 65, 100]) |
| 142 | pd.qcut() | Divide dados em bins baseados em quantis (mesmo tamanho) | pd.qcut(df['renda'], q=4) |
| 143 | pd.testing.assert_frame_equal() | Verifica se dois DFs são idênticos (útil para testes unitários) | pd.testing.assert_frame_equal(df1, df2) |