pandas Series & DataFrames
pandas adiciona eixos rotulados a dados colunares: uma Series é uma coluna tipada; um DataFrame é uma tabela de Series alinhadas compartilhando um índice.
Busque em todas as páginas da documentação
pandas adiciona eixos rotulados a dados colunares: uma Series é uma coluna tipada; um DataFrame é uma tabela de Series alinhadas compartilhando um índice.
Cartão de referência rápida - pronto para copiar e colar.
import pandas as pd
df = pd.DataFrame(
{"region": ["East", "West"], "revenue": [120, 340]},
index=pd.Index(["a", "b"], name="row"),
)
east = df.loc[df["region"] == "East", "revenue"]
subset = df.iloc[0:1, [0, 1]]Quando usar isso:
import pandas as pd
orders = pd.DataFrame(
{
"order_id": [101, 102, 103, 104],
"region": pd.Categorical(["East", "West", "East", "West"]),
"revenue": [120.0, 340.0, None, 210.0],
"ordered_at": pd.to_datetime(
["2025-01-01", "2025-01-02", "2025-01-03", "2025-01-04"], utc=True
),
}
).set_index("order_id")
# Seleção baseada em rótulo
east = orders.loc[orders["region"] == "East", ["region", "revenue"]]
# Cabeçalho baseado em posição
head = orders.iloc[:2]
# Adicionar coluna computada com segurança
orders = orders.copy()
orders["revenue_filled"] = orders["revenue"].fillna(orders["revenue"].median())
# Redução de Series
monthly_total = orders["revenue_filled"].sum()
print(east)
print("monthly_total:", monthly_total)O que isso demonstra:
.loc com subconjunto de colunas.copy() antes da atribuição para evitar SettingWithCopyWarning.loc inclui ambos os pontos finais para rótulos; .iloc é meio aberto como fatias do Python.dtype (string[pyarrow]) altera o comportamento de memória e de valores ausentes.| Objetivo | API |
|---|---|
| Filtrar linhas | df.loc[mascara] |
| Selecionar colunas | df[["a", "b"]] |
| Escalar por rótulo | df.loc[linha, "coluna"] |
| Escalar por posição | df.iloc[i, j] |
| Parâmetro | Tipo | Descrição |
|---|---|---|
index | Semelhante a Index | Rótulos de linha; padrão é RangeIndex |
columns | list[str] | Nomes de coluna para DataFrame |
dtype | str/np.dtype | Força o tipo de coluna na construção |
df[df["x"] > 0]["y"] = 1 dispara SettingWithCopyWarning. Correção: df.loc[df["x"] > 0, "y"] = 1..loc["a"] retorna múltiplas linhas; acesso escalar falha. Correção: reset_index() ou impor chaves únicas upstream.object padrão usam muita RAM. Correção: df["col"] = df["col"].astype("string[pyarrow]") no pandas 2.2+.Int64 anulável quando NA for possível.pd.to_datetime(..., utc=True) em todos os lugares na ingestão.| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Polars DataFrame | Scans preguiçosos, dados muito grandes, tipagem estrita | Equipe já padronizada em idiomas pandas |
| PyArrow Table | Intercâmbio de memória zero entre sistemas | Você precisa de indexação interativa rica |
| SQL via DuckDB | Dados já em tabelas de data warehouse | Transformações pequenas em memória |
| Arrays estruturados NumPy | Registros numéricos de esquema fixo | Tipos de coluna heterogêneos |
groupby quando você precisa da chave do grupo como uma coluna..loc.df["col"] seleciona uma Series de coluna.df.loc[linhas, colunas] é seleção 2D baseada em rótulo com regras de alinhamento.inplace=True (desencorajado).filter preguiçoso do Polars ou leituras em blocos.import pandas as pd
df = pd.read_csv("big.csv", usecols=["region", "revenue"])s.name aparece quando a Series se torna uma coluna de DataFrame.pd.Series(..., name="revenue").import pandas as pd
df.columns.duplicated().any()df["x"] retornar múltiplas colunas.pd.options.mode.copy_on_write = True, operações encadeadas adiam cópias até a escrita..loc para clareza.df = df.reset_index()df.rename_axis("order_id").reset_index() para nomear o antigo índice.dtype ou pd.to_numeric(errors="coerce").sample = df.sample(n=100, random_state=42)Versões do Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, e uv 0.6+.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026