Pandas é a biblioteca central da análise de dados em Python. O DataFrame — a estrutura principal do Pandas — é uma tabela com linhas e colunas, como uma planilha Excel, mas programável. Tudo que você faz manualmente no Excel, você pode automatizar com Pandas.
Instalando e importando
pip install pandas openpyxl
import pandas as pd
Criando um DataFrame
dados = {
"nome": ["Ana", "Bruno", "Carlos", "Diana"],
"vendas": [12000, 8500, 19000, 6300],
"regiao": ["Sul", "Norte", "Sul", "Centro"]
}
df = pd.DataFrame(dados)
print(df)
Lendo arquivos
# Ler CSV:
df = pd.read_csv("vendas.csv", sep=";", encoding="utf-8")
# Para arquivos brasileiros com ; e encoding diferente:
df = pd.read_csv("vendas.csv", sep=";", encoding="latin-1")
# Ler Excel:
df = pd.read_excel("vendas.xlsx", sheet_name="Dados")
Explorando os dados
print(df.shape) # (linhas, colunas)
print(df.dtypes) # tipo de cada coluna
print(df.head(5)) # primeiras 5 linhas
print(df.tail(3)) # últimas 3 linhas
print(df.info()) # resumo: tipos, nulos, memória
print(df.describe()) # estatísticas: média, std, min, max...
Acessando dados
# Coluna única:
print(df["nome"])
print(df.nome) # funciona se o nome não tem espaços
# Múltiplas colunas:
print(df[["nome", "vendas"]])
# Linhas por posição (.iloc):
print(df.iloc[0]) # primeira linha
print(df.iloc[0:3]) # linhas 0 a 2
# Linhas por índice (.loc):
print(df.loc[0]) # linha com índice 0
# Filtro:
print(df[df["vendas"] > 10000])
print(df[df["regiao"] == "Sul"])
Salvando resultados
df.to_csv("resultado.csv", index=False, sep=";", encoding="utf-8-sig")
df.to_excel("resultado.xlsx", index=False, sheet_name="Resultado")
index=False evita que o Pandas salve a coluna de índice numérico no arquivo. encoding="utf-8-sig" garante que acentos apareçam corretamente ao abrir no Excel.
Perguntas frequentes
Pandas suporta arquivos grandes (mais de 1 milhão de linhas)?
Sim, mas o desempenho depende da RAM disponível. Para arquivos muito grandes, use o parâmetro chunksize do read_csv() para processar em pedaços, ou considere bibliotecas como Polars (mais rápida) ou Dask (para processamento paralelo).
Como sei se meu DataFrame tem dados nulos?
df.isnull().sum() retorna o número de nulos por coluna. df.isnull().any() retorna True para colunas que têm algum nulo.