Cheat sheet
Sintaxe, operações, critérios de escolha e erros para consulta rápida.
Python
| Pedido | Sintaxe ou regra |
|---|---|
| Atribuir e comparar | x = 3; x == 3 |
| Potência, quociente, resto | a ** b; a // b; a % b |
| Ler um inteiro | n = int(input()) |
| Mostrar duas casas | print(f"{valor:.2f}") |
| Decidir | if condicao:; elif outra:; else: |
| Repetir até condição falsa | while condicao: |
| Percorrer elementos | for x in valores: |
| Inteiros de 1 até n | range(1, n + 1) |
| Último elemento | sequencia[-1] |
| Slice | [inicio:fim:passo], fim excluído |
| Copiar lista | lista.copy(), cópia superficial |
| Construir lista | [f(x) for x in valores if condicao(x)] |
| Devolver da função | return resultado |
| Abrir texto | with open(caminho, encoding="utf-8") as f: |
input devolve texto. print não devolve o valor mostrado. sort() altera e devolve None; sorted() cria outra lista. Um valor por defeito mutável numa função é partilhado entre chamadas. Explicações.
| Coleção | Ordem | Repetições | Alteração |
|---|---|---|---|
| Lista | Sequência | Sim | Sim |
| Tuplo | Sequência | Sim | Sem substituir elementos |
| Conjunto | Sem ordem de leitura garantida | Não | Sim |
| Dicionário | Inserção das chaves | Chaves únicas | Sim |
Conjunto vazio: set(). Dicionário vazio: {}. União: a | b; interseção: a & b; diferença: a - b. Contar: d[x] = d.get(x, 0) + 1. Coleções.
NumPy
import numpy as np
| Pedido | Operação |
|---|---|
| Criar | np.array(valores, dtype=float) |
| Forma e tamanho | a.shape; a.ndim; a.size; a.dtype |
| Matriz, linha i e coluna j | a[i, j] |
| Coluna j | a[:, j] |
| Filtrar | a[a > 0] |
| Somar por coluna | a.sum(axis=0) |
| Somar por linha | a.sum(axis=1) |
| Produto matricial | a @ b |
| Produto elemento a elemento | a * b |
| Copiar dados | a.copy() |
Broadcasting compara dimensões a partir da direita: iguais ou uma delas 1. Slices básicos podem partilhar dados. reshape conserva o número de elementos. Arrays.
pandas
import pandas as pd
| Pedido | Operação |
|---|---|
| Ler CSV | pd.read_csv(caminho, sep=";", decimal=",") |
| Inspecionar | df.head(); df.shape; df.dtypes; df.info() |
| Coluna como Series | df["x"] |
| Coluna como tabela | df[["x"]] |
| Rótulos | df.loc[linhas, colunas] |
| Posições | df.iloc[linhas, colunas] |
| Filtrar duas condições | df.loc[(df["x"] > 0) & (df["y"] == "A")] |
| Alterar o original | df.loc[mascara, "x"] = valor |
| Coluna calculada | df["total"] = df["q"] * df["preco"] |
| Ordenar | df.sort_values("x") |
| Nulos | s.isna(); s.notna(); s.fillna(valor) |
| Linhas sem nulo em x | df.dropna(subset=["x"]) |
| Contar linhas e conhecidos | len(df); s.count() |
| Frequências | s.value_counts(dropna=False) |
| Estatísticas | s.sum(); s.mean(); s.median(); s.std() |
| Exportar sem índice | df.to_csv(caminho, index=False) |
loc inclui os extremos dos slices por rótulo; iloc exclui o fim. Series alinham pelo índice. Usa &, | e ~, com parênteses, não and e or. pandas usa normalmente ddof=1 na variância; NumPy usa ddof=0. Seleção e estatística.
Escolher a transformação
| Objetivo | Operação |
|---|---|
| Acrescentar linhas | pd.concat([a, b], ignore_index=True) |
| Relacionar por chave | a.merge(b, on="id", how="left", validate="many_to_one") |
| Relacionar com índice | a.join(b, on="id") |
| Longo para largo, chave única | df.pivot(index="i", columns="c", values="v") |
| Longo para largo, agregar repetidos | df.pivot_table(index="i", columns="c", values="v", aggfunc="sum") |
| Largo para longo | df.melt(id_vars="id", var_name="medida", value_name="valor") |
| Total por grupo | df.groupby("grupo")["v"].sum() |
| Total do grupo em cada linha | df.groupby("grupo")["v"].transform("sum") |
Uma junção muitos-para-muitos multiplica correspondências. pivot_table usa média por defeito; escreve a agregação pedida. size conta linhas; count conta não nulos. Junções, formas e grupos.
Texto, tempo e gráficos
| Pedido | Operação ou critério |
|---|---|
| Limpar texto | s.str.strip().str.lower() |
| Procurar texto literal | s.str.contains("abc", regex=False, na=False) |
| Converter datas | pd.to_datetime(s, format="%d/%m/%Y", errors="coerce") |
| Componentes da data | s.dt.year; s.dt.month; s.dt.dayofweek |
| Total diário | df.set_index("data")["v"].resample("D").sum(min_count=1) |
| Acrescentar dias | timedelta(days=n) |
| Acrescentar meses | relativedelta(months=n) |
| Medir tempo decorrido | Diferença de duas chamadas time.perf_counter() |
| Comparar categorias | Barras, zero na origem |
| Evolução temporal | Linha, datas ordenadas |
| Distribuição de uma variável | Histograma, intervalos declarados |
| Associação de duas variáveis | Dispersão, um ponto por observação |
Ausência não é zero sem uma hipótese. Dias não são meses. Um gráfico precisa de unidade, rótulos e dados conferidos. Texto, tempo e gráficos.
Operações adicionais das aulas
s.mode(): Series com todas as modas;(s - s.mean()).abs().mean(): desvio absoluto médio, equivalente ao antigomad().s.sem(): erro padrão da média;s.skew()es.kurt(): assimetria e excesso de curtose amostrais.cumsum,cumprod,cummax,cummin: um resultado por prefixo, dependente da ordem.df.insert(pos, nome, valores): altera a tabela;df.pop(nome): remove e devolve a coluna;del df[nome]: remove.pd.concat(blocos, keys=origens): conserva a origem num nível de índice;verify_integrity=True: rejeita rótulos repetidos no eixo concatenado.np.eye(n): identidade;a.itemsize: bytes por elemento;a.nbytes: bytes dos dados.np.random.default_rng(semente): gerador explícito;integers(a, b): extremo b excluído;shuffle: altera;permutation: devolve outra sequência.