DataFrames Pandas são essenciais para manipulação de dados em Python. Adicionar novas colunas é uma tarefa comum, e Pandas oferece diversas maneiras eficientes de alcançar isso. Este artigo explora quatro métodos-chave, destacando seus pontos fortes e fracos para ajudá-lo a escolher a melhor abordagem para sua situação.
Sumário
Método do Operador []: A Maneira Rápida e Fácil
Este é o método mais simples, ideal para adicionar colunas com base em dados existentes ou cálculos diretos. Você atribui valores diretamente a uma nova coluna usando colchetes.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df['City'] = ['Nova York', 'Londres', 'Paris']
print(df)
Limitações: Este método não pode inserir em uma posição específica e requer que os dados da nova coluna correspondam ao comprimento do DataFrame.
Método df.insert()
: Posicionamento Preciso da Coluna
df.insert()
oferece mais controle, permitindo especificar o índice (posição) da coluna. Ele recebe três argumentos: a posição, o nome da coluna e os dados.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.insert(1, 'City', ['Nova York', 'Londres', 'Paris'])
print(df)
Ideal para: Situações em que a ordem da coluna é crítica.
Método df.assign()
: Adicionando Múltiplas Colunas Eficientemente
df.assign()
é particularmente útil para adicionar várias colunas de uma vez ou criar novas colunas com base em cálculos. Importante: ele retorna um DataFrame *novo*, deixando o original inalterado.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df = df.assign(City=['Nova York', 'Londres', 'Paris'], Age_Squared=df['Age']**2)
print(df)
Ideal para: Adições de múltiplas colunas e colunas calculadas; sua imutabilidade previne perda acidental de dados.
Método df.loc()
: Criação Condicional de Colunas
df.loc()
oferece a maior flexibilidade, permitindo a criação condicional de colunas com base na seleção de linhas e indexação booleana.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.loc[df['Age'] < 30, 'Age_Group'] = 'Jovem'
df.loc[df['Age'] >= 30, 'Age_Group'] = 'Idoso'
print(df)
Ideal para: Adicionar colunas com base em condições complexas; requer familiaridade com indexação booleana.
Conclusão: O método ideal depende de suas necessidades específicas. O operador [] é rápido para adições simples, df.insert()
controla a posição da coluna, df.assign()
lida com múltiplas colunas ou colunas calculadas eficientemente, e df.loc()
permite a criação condicional de colunas. Escolha o método que melhor equilibra a legibilidade e a funcionalidade para sua tarefa.