Skip to content

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)
KaggleColabGitHub
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étodoMelhor ParaExemplo
1. Atribuição (df['col'] = ...)Casos mais comuns/simplesdf['salary'] = ...
2. Inserir coluna (df.insert)Inserir em um índice específicodf.insert(1, 'x', ...)
3. Assign (df.assign)Method chainingdf = df.assign(x=...)
4. Concat (pd.concat)Adicionar muitas colunas de uma vezpd.concat([df, df2], axis=1)
5. Baseado em colunas existentesTransformações do mundo realdf['age2'] = df['age'] * 2
6. Colunas condicionaisLógica if-elsenp.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'] > 18

Use 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'] = 1

Conclusã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 insert para ordem precisa
  • Método assign para chaining
  • concat para 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']] * 2

4. Qual é o método mais rápido?

A atribuição simples (df['col'] = ...) geralmente é a mais eficiente.