Adicionando uma Nova Coluna em um DataFrame do Pandas (Com Exemplos e Boas Práticas)
Updated on
Adicionar novas colunas é uma das operações mais comuns ao trabalhar com DataFrames do Pandas. Seja para criar um campo calculado, inserir uma coluna em uma posição específica ou construir um DataFrame dinamicamente, o Pandas oferece várias técnicas poderosas para fazer isso com facilidade.
Este guia atualizado de 2025 cobre:
- Os 6 melhores modos de adicionar uma nova coluna
- Quando usar cada método
- Como adicionar colunas com base em dados existentes
- Como evitar erros comuns (por exemplo,
SettingWithCopyWarning) - Exemplos de uso no mundo real
⭐ Dica Rápida: Transforme Seu DataFrame em uma Ferramenta de Análise Visual
Quer visualizar seu DataFrame instantaneamente?
PyGWalker converte qualquer DataFrame do Pandas ou Polars em uma interface interativa ao estilo Tableau diretamente no Jupyter Notebook.
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)| Kaggle | Colab | GitHub |
|---|---|---|
| Run PyGWalker in Kaggle (opens in a new tab) | Run in Google Colab (opens in a new tab) | Give us a ⭐️ (opens in a new tab) |
O Que é um DataFrame do Pandas?
Um DataFrame é uma tabela bidimensional rotulada (linhas + colunas), semelhante ao Excel ou tabelas SQL. O Pandas permite criar DataFrames a partir de:
- CSV
- Excel
- SQL
- JSON
- Listas e dicionários em Python
E fornece APIs poderosas para manipulá-los e analisá-los.
📌 Como Adicionar uma Nova Coluna no Pandas (Visão Geral Rápida)
| Método | Melhor Para | Exemplo |
|---|---|---|
1. Atribuição (df['col'] = ...) | Casos mais comuns/simples | df['salary'] = ... |
2. Inserir coluna (df.insert) | Inserir em um índice específico | df.insert(1, 'x', ...) |
3. Assign (df.assign) | Method chaining | df = df.assign(x=...) |
4. Concat (pd.concat) | Adicionar muitas colunas de uma vez | pd.concat([df, df2], axis=1) |
| 5. Baseado em colunas existentes | Transformações do mundo real | df['age2'] = df['age'] * 2 |
| 6. Colunas condicionais | Lógica if-else | np.where(...) |
Vamos ver cada método com exemplos.
1. Método: Atribuição Simples (Melhor para a Maioria dos Casos)
df['NewColumn'] = [1, 2, 3, 4]▶ Exemplo
df['Salary'] = [50000, 60000, 70000, 80000]Quando usar:
- Método mais comum e mais simples
- Adicionar valores constantes, listas, arrays ou resultados calculados
Observações:
- Sobrescreve a coluna se ela já existir
- Muito eficiente
2. Método: Inserir Coluna em uma Posição Específica (df.insert)
df.insert(loc=1, column='Department', value=['IT', 'HR', 'Finance', 'Admin'])Use quando:
- Você quer uma ordem de colunas exata
- Útil para relatórios e exportação de dados estruturados
3. Método: Adicionar Coluna Usando assign (Estilo Funcional / Chaining)
df = df.assign(Tax=lambda x: x['Salary'] * 0.1)Benefícios:
- Bom para method chaining
- Não modifica o DataFrame original, a menos que você atribua o resultado
4. Método: Adicionar Colunas Usando pd.concat
df2 = pd.DataFrame({'Bonus': [1000, 2000, 2500, 1800]})
df = pd.concat([df, df2], axis=1)Use quando:
- Você está concatenando múltiplas novas colunas
- Você quer combinar dois DataFrames
Evite quando:
- For adicionar uma única coluna → atribuição é mais rápida
5. Adicionar uma Coluna com Base em Colunas Existentes (Exemplo do Mundo Real)
Este é o caso de uso mais comum — e costuma ficar de fora em muitos artigos.
Exemplo: Criar uma pontuação total
df['Total'] = df['Math'] + df['Science'] + df['English']Exemplo: Normalizar um valor
df['Age_Norm'] = df['Age'] / df['Age'].max()6. Colunas Condicionais (np.where ou máscaras booleanas)
Exemplo: Adicionar um indicador de "Senior"
import numpy as np
df['Senior'] = np.where(df['Age'] >= 35, 'Yes', 'No')Versão com máscara booleana
df['IsAdult'] = df['Age'] > 18Use quando:
- Criar rótulos de classificação
- Condições binárias
Sobrescrevendo uma Coluna Existente
Sim — a atribuição simples sobrescreve:
df['Age'] = [26, 31, 36, 41]Inserir Coluna em uma Posição Usando o Nome da Coluna
df.insert(df.columns.get_loc("Age"), 'Score', [1, 2, 3, 4])Útil quando a ordem das colunas depende de nomes existentes (por exemplo, em pipelines automáticos).
⚠ Erro Comum a Evitar: SettingWithCopyWarning
Se você fizer um slice do DataFrame de forma incorreta:
subset = df[df['Age'] > 30]
subset['Flag'] = 1 # Warning!Correção:
subset = df[df['Age'] > 30].copy()
subset['Flag'] = 1Conclusão
Você agora conhece os 6 métodos essenciais para adicionar novas colunas no Pandas:
- Atribuição simples (melhor opção padrão)
- Método
insertpara ordem precisa - Método
assignpara chaining concatpara combinar DataFrames- Colunas baseadas em cálculos
- Colunas com lógica condicional
Essas técnicas ajudam a manipular DataFrames com eficiência e a evitar armadilhas comuns.
FAQ (Para SEO & Suporte ao Usuário)
1. Como adiciono uma coluna com o mesmo valor?
df['Source'] = 'System'2. Como adiciono uma coluna baseada em uma função?
df['Score'] = df.apply(lambda x: x['Math'] * 0.6 + x['English'] * 0.4, axis=1)3. Como adiciono múltiplas colunas de uma vez?
df[['A', 'B']] = df[['X', 'Y']] * 24. Qual é o método mais rápido?
A atribuição simples (df['col'] = ...) geralmente é a mais eficiente.