Adicionando e removendo colunas
Adicione novas colunas calculadas, renomeie as existentes e remova colunas ou linhas indesejadas com drop().
Adicionando e removendo colunas é uma aula grátis de Pandas & NumPy Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Pandas & NumPy Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Pandas & NumPy Academy inclui 4 aulas no total.
Adicionando uma nova coluna por atribuição
A maneira mais simples de adicionar uma coluna é por atribuição direta: df['new_col'] = values. O lado direito pode ser um escalar (propagado para todas as linhas), uma lista com o mesmo tamanho, um array NumPy, uma série do Pandas (alinhada pelo índice) ou uma expressão calculada que envolva colunas existentes. As novas colunas são adicionadas à direita do DataFrame.
import pandas as pd
df = pd.DataFrame({'price': [10.0, 20.0, 15.0], 'qty': [3, 5, 2]})
df['revenue'] = df['price'] * df['qty']
df['currency'] = 'USD'
print(df)Engenharia de Recursos: Colunas Calculadas
Uma das operações mais comuns com DataFrames é criar recursos derivados a partir de colunas existentes. Você pode calcular totais acumulados, proporções, sinalizadores ou codificar valores categóricos em uma única expressão vetorizada. Essas colunas calculadas são atualizadas automaticamente quando as colunas de origem mudam, desde que você as recalcule, o que facilita a reprodução de pipelines de engenharia de recursos.
import pandas as pd
df = pd.DataFrame({'salary': [50000, 80000, 60000],
'bonus': [5000, 12000, 7000]})
df['total_comp'] = df['salary'] + df['bonus']
df['bonus_pct'] = (df['bonus'] / df['salary'] * 100).round(1)
print(df)Usando assign() para Encadear Métodos
df.assign(new_col=expression) retorna um novo DataFrame com a coluna adicionada, sem modificar o original. Diferentemente da atribuição direta, ele se encaixa naturalmente em um encadeamento de métodos. Você pode adicionar várias colunas em uma única chamada, e as expressões de colunas posteriores podem fazer referência a colunas anteriores definidas na mesma chamada de assign() usando funções lambda.
import pandas as pd
df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
result = (df
.assign(sum_xy=lambda d: d['x'] + d['y'])
.assign(ratio=lambda d: d['x'] / d['sum_xy'])
)
print(result)Renomeando Colunas com rename()
df.rename(columns={'old': 'new'}) retorna um novo DataFrame com as colunas renomeadas. Passe um dicionário para renomear colunas selecionadas sem afetar as demais. Você também pode renomear usando uma função: df.rename(columns=str.upper) converte todos os nomes de colunas para maiúsculas. Sempre renomeie antes de mesclar DataFrames de fontes diferentes, para garantir que as colunas-chave estejam alinhadas.
import pandas as pd
df = pd.DataFrame({'a': [1, 2], 'b': [3, 4], 'c': [5, 6]})
renamed = df.rename(columns={'a': 'alpha', 'b': 'beta'})
print(renamed.columns.tolist()) # ['alpha', 'beta', 'c']
# Rename all columns to uppercase
print(df.rename(columns=str.upper).columns.tolist()) # ['A', 'B', 'C']Limpando Nomes de Colunas
Nomes de colunas do mundo real geralmente contêm espaços, caracteres especiais ou uso inconsistente de maiúsculas e minúsculas. Uma etapa comum de pré-processamento é normalizá-los: remover espaços em branco, convertê-los para minúsculas e substituir espaços por sublinhados. Isso torna as colunas acessíveis usando a notação de ponto e evita problemas de aspas em strings de consulta semelhantes às do SQL.
import pandas as pd
df = pd.DataFrame(columns=['First Name', 'Last Name', 'Email Address'])
df.columns = (df.columns
.str.strip()
.str.lower()
.str.replace(' ', '_', regex=False)
)
print(df.columns.tolist()) # ['first_name', 'last_name', 'email_address']Inserindo uma Coluna em uma Posição Específica
df.insert(loc, column, value) insere uma coluna na posição inteira loc, deslocando as outras colunas para a direita. Isso é útil quando você quer que a nova coluna apareça ao lado de colunas relacionadas, em vez de no final. A operação modifica o DataFrame no próprio objeto, diferentemente de assign().
import pandas as pd
df = pd.DataFrame({'name': ['A', 'B'], 'score': [80, 90]})
df.insert(1, 'grade', ['B', 'A'])
print(df)
# name grade score
# 0 A B 80
# 1 B A 90Removendo Colunas com drop()
df.drop(columns=['col1', 'col2']) retorna um novo DataFrame sem essas colunas. A sintaxe mais antiga df.drop(['col1', 'col2'], axis=1) também funciona, mas é menos legível. Para remover no próprio objeto, passe inplace=True. Em pipelines, prefira sempre retornar um novo DataFrame para preservar o original para comparação ou reversão.
import pandas as pd
df = pd.DataFrame({'a': [1,2], 'b': [3,4], 'c': [5,6], 'd': [7,8]})
cleaned = df.drop(columns=['b', 'd'])
print(cleaned.columns.tolist()) # ['a', 'c']Removendo Linhas com drop()
df.drop(index=['r1', 'r2']) remove linhas pelo rótulo. df.drop([0, 2]) remove as linhas 0 e 2 de um índice inteiro padrão. A remoção de linhas é comumente usada para eliminar registros inválidos conhecidos, valores atípicos ou linhas de teste após a limpeza dos dados. Prefira a indexação booleana para remoções baseadas em condições, a fim de manter o código legível.
import pandas as pd
df = pd.DataFrame({'x': [10, 20, 30, 40]}, index=['a', 'b', 'c', 'd'])
trimmed = df.drop(index=['b', 'd'])
print(trimmed)
# x
# a 10
# c 30pop() para Remover e Retornar uma Coluna
df.pop('col') remove a coluna do DataFrame no próprio objeto e a retorna como uma série. Isso é útil quando você precisa extrair uma coluna-alvo (rótulo) de uma matriz de recursos: você a remove do DataFrame e a mantém separadamente para usá-la como a variável y em um modelo.
import pandas as pd
df = pd.DataFrame({'feature1': [1,2], 'feature2': [3,4], 'target': [0,1]})
y = df.pop('target') # removes column and returns as Series
X = df # remaining features
print(y.tolist()) # [0, 1]
print(X.columns.tolist()) # ['feature1', 'feature2']Reordenando Colunas
Para reordenar colunas, selecione-as na ordem desejada usando df[['col3', 'col1', 'col2']]. Em DataFrames grandes nos quais você quer mover apenas algumas colunas, calcule a ordem desejada programaticamente: mova as colunas prioritárias para o início e deixe as demais em seguida. Essa é uma etapa comum de preparação de relatórios antes da exportação para o Excel.
import pandas as pd
df = pd.DataFrame({'id': [1,2], 'score': [80,90], 'name': ['A','B']})
# Move 'name' and 'id' to front
cols = ['name', 'id'] + [c for c in df.columns if c not in ['name', 'id']]
df = df[cols]
print(df.columns.tolist()) # ['name', 'id', 'score']Atualizando Valores de Colunas Existentes
Atualizar todos os valores de uma coluna existente usa a mesma sintaxe de atribuição usada para adicionar uma nova: df['col'] = new_values. Use df.loc[mask, 'col'] = value para atualizar apenas as linhas que correspondem a uma condição. Nunca use indexação encadeada para atualizações — use sempre .loc para evitar o SettingWithCopyWarning.
import pandas as pd
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Carol'], 'score': [45, 80, 92]})
# Set scores below 50 to 50 (floor)
df.loc[df['score'] < 50, 'score'] = 50
print(df['score'].tolist()) # [50, 80, 92]Verificação Rápida
Teste sua compreensão sobre como adicionar e remover colunas nesta lição.
Recapitulação da Lição
Nesta lição, você aprendeu que: novas colunas são adicionadas por atribuição ou usando assign(), que é adequado para encadeamento de métodos, rename() altera os nomes das colunas sem modificar os dados e drop() remove colunas ou linhas e, por padrão, retorna um novo DataFrame. A seguir, usaremos head(), tail(), info() e describe() para criar rapidamente um perfil de qualquer DataFrame.
Perguntas Frequentes
A aula “Adicionando e removendo colunas” é grátis?
Sim — o texto completo de “Adicionando e removendo colunas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Pandas & NumPy Academy, atualize para CoddyKit PRO. O curso de Pandas & NumPy Academy inclui 4 aulas no total.
O que vou aprender em “Adicionando e removendo colunas”?
Adicione novas colunas calculadas, renomeie as existentes e remova colunas ou linhas indesejadas com drop(). Você pratica Pandas & NumPy Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Pandas & NumPy Academy?
Nenhuma experiência prévia é necessária. Pandas & NumPy Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Adicionando e removendo colunas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Pandas & NumPy Academy?
Sim. Cada aula de Pandas & NumPy Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criando DataFrames
- Selecionando colunas e linhas
- Adicionando e removendo colunas
- Inspeção básica de DataFrame