Pular para o conteúdo

Guia Fácil para Iniciantes - Adicionando Múltiplas Colunas com Pandas

[

Pandas: Adicionar múltiplas colunas

Resumo

Neste tutorial, discutiremos como adicionar múltiplas colunas a um DataFrame usando a biblioteca Python chamada Pandas. O Pandas oferece uma série de métodos poderosos para manipulação e transformação de dados, incluindo a adição de colunas em um DataFrame existente.

Introdução

O Pandas é uma biblioteca amplamente utilizada para análise de dados em Python. Ele fornece estruturas de dados flexíveis, como o DataFrame, que nos permite trabalhar com dados tabulares de forma eficiente. Uma tarefa comum ao trabalhar com DataFrames é adicionar novas colunas para armazenar informações adicionais ou realizar cálculos com base nos valores existentes.

1. Configuração do ambiente

Antes de começarmos, precisamos instalar e importar o Pandas em nosso ambiente. Abra o terminal ou prompt de comando e execute o seguinte comando:

!pip install pandas

Após a instalação, podemos importar o Pandas em nosso código usando o comando:

import pandas as pd

2. Criando um DataFrame

Para ilustrar a adição de múltiplas colunas ao DataFrame, primeiro vamos criar um DataFrame de exemplo. Podemos criar um DataFrame vazio e, em seguida, adicionar colunas conforme necessário. Vamos considerar o seguinte exemplo:

import pandas as pd
# Criando um DataFrame vazio
df = pd.DataFrame()
# Adicionando colunas ao DataFrame
df['Nome'] = ['João', 'Maria', 'Pedro']
df['Idade'] = [25, 30, 35]
df['Cidade'] = ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte']

Agora temos um DataFrame df com três colunas: “Nome”, “Idade” e “Cidade”. Vamos prosseguir e adicionar mais colunas a este DataFrame.

3. Adicionando uma única coluna

A maneira mais simples de adicionar uma única coluna a um DataFrame é atribuir uma lista ou uma série de valores a uma nova chave no DataFrame. Por exemplo:

import pandas as pd
# DataFrame original
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Idade': [25, 30, 35],
'Cidade': ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte']})
# Adicionando uma nova coluna
df['Salário'] = [5000, 6000, 7000]

Neste exemplo, adicionamos a nova coluna “Salário” ao DataFrame df. Agora o DataFrame possui quatro colunas: “Nome”, “Idade”, “Cidade” e “Salário”.

4. Adicionando múltiplas colunas com atribuição direta

O Pandas também permite adicionar múltiplas colunas a um DataFrame usando a atribuição direta. Podemos criar um dicionário em que as chaves são os nomes das colunas e os valores são as listas ou séries correspondentes. Por exemplo:

import pandas as pd
# DataFrame original
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Idade': [25, 30, 35],
'Cidade': ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte']})
# Adicionando múltiplas colunas com atribuição direta
df[['Gênero', 'Profissão', 'Salário']] = [['Masculino', 'Fisioterapeuta', 5000],
['Feminino', 'Engenheira', 6000],
['Masculino', 'Professor', 7000]]

Neste exemplo, adicionamos três novas colunas (“Gênero”, “Profissão” e “Salário”) ao DataFrame df. Os valores são atribuídos diretamente usando uma lista de listas.

5. Adicionando múltiplas colunas com base em uma função

É possível adicionar múltiplas colunas a um DataFrame aplicando uma função aos valores existentes. O Pandas fornece o método apply() que nos permite aplicar uma função a cada valor de uma série ou DataFrame. Vamos considerar o seguinte exemplo:

import pandas as pd
# DataFrame original
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Idade': [25, 30, 35],
'Cidade': ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte']})
# Função para retornar a primeira letra de cada nome
def primeira_letra(nome):
return nome[0]
# Adicionando múltiplas colunas com base em uma função
df[['Inicial']] = df['Nome'].apply(primeira_letra)

Neste exemplo, definimos uma função primeira_letra() que retorna a primeira letra de um nome. A função é aplicada à coluna “Nome” usando o método apply(), e os valores resultantes são atribuídos a uma nova coluna “Inicial”. Agora nosso DataFrame possui uma coluna adicional chamada “Inicial”.

6. Adicionando colunas com base em operações entre colunas existentes

Outro cenário comum é adicionar colunas em um DataFrame com base em operações entre colunas existentes. Podemos usar as operações aritméticas e lógicas para criar novas colunas. Considere o seguinte exemplo:

import pandas as pd
# DataFrame original
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Nota1': [8, 9, 7],
'Nota2': [7, 8, 9]})
# Adicionando múltiplas colunas com base em operações
df['Média'] = (df['Nota1'] + df['Nota2']) / 2
df['Aprovado'] = df['Média'] >= 7

Neste exemplo, adicionamos duas novas colunas ao DataFrame df. A coluna “Média” é calculada como a média das colunas “Nota1” e “Nota2”. A coluna “Aprovado” é calculada com base na média, verificando se ela é maior ou igual a 7. Agora temos três colunas adicionais no DataFrame.

7. Adicionando colunas com base em condições

Podemos adicionar colunas a um DataFrame com base em condições usando a função np.select() do NumPy. Esta função permite aplicar uma condição a uma lista de valores e retornar um valor correspondente para cada condição. Considere o seguinte exemplo:

import pandas as pd
import numpy as np
# DataFrame original
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Idade': [18, 25, 30]})
# Condições e valores correspondentes
condições = [
df['Idade'] < 18,
(df['Idade'] >= 18) & (df['Idade'] < 30),
df['Idade'] >= 30
]
valores = ['Menor de idade', 'Adulto', 'Idoso']
# Adicionando colunas com base em condições
df['Categoria'] = np.select(condições, valores, default='Desconhecido')

Neste exemplo, adicionamos a nova coluna “Categoria” ao DataFrame df com base nas condições definidas e nos valores correspondentes. Isso permite categorizar as pessoas em “Menor de idade”, “Adulto” ou “Idoso” com base em sua idade.

8. Adicionando colunas com base em dados externos

Em alguns casos, podemos precisar adicionar colunas a um DataFrame com base em dados externos. Podemos ler os dados externos em um DataFrame separado e, em seguida, mesclar ou combinar os DataFrames com base em uma coluna em comum. Considere o seguinte exemplo:

import pandas as pd
# DataFrame original
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Idade': [25, 30, 35]})
# DataFrame com dados externos
df2 = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Salário': [5000, 6000, 7000]})
# Mesclando DataFrames
df = pd.merge(df, df2, on='Nome')

Neste exemplo, adicionamos a coluna “Salário” ao DataFrame df com base nos dados contidos no DataFrame df2. Os DataFrames são mesclados com base na coluna “Nome” em comum.

9. Adicionando colunas com base em um cálculo complexo

Em alguns casos, é necessário adicionar colunas a um DataFrame com base em cálculos complexos ou em lógica personalizada. Podemos usar a função apply() novamente, desta vez aplicando uma função personalizada a cada linha ou coluna do DataFrame. Considere o seguinte exemplo:

import pandas as pd
# DataFrame original
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Idade': [25, 30, 35]})
# Função personalizada
def calc_complexo(row):
# Realizar algum cálculo complexo
resultado = row['Idade'] * 2 + 10
return resultado
# Adicionando coluna com base em cálculo complexo
df['Resultado'] = df.apply(calc_complexo, axis=1)

Neste exemplo, definimos uma função calc_complexo() que realiza um cálculo complexo com base nos valores da coluna “Idade”. A função é aplicada a cada linha do DataFrame usando o método apply() com o argumento axis=1. A coluna “Resultado” é adicionada ao DataFrame df com base no cálculo realizado.

10. Adicionando colunas com base na iteração do DataFrame

Por fim, podemos iterar sobre o DataFrame e adicionar colunas com base em lógica personalizada ou cálculos complexos. Podemos usar um loop for juntamente com o método iterrows() para percorrer cada linha do DataFrame. Considere o seguinte exemplo:

import pandas as pd
# DataFrame original
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'],
'Idade': [25, 30, 35]})
# Adicionando colunas com base na iteração do DataFrame
for index, row in df.iterrows():
# Realizar alguma lógica ou cálculo
df.at[index, 'Coluna_nova'] = row['Idade'] * 2
# Exibir o DataFrame resultante
print(df)

Neste exemplo, iteramos sobre o DataFrame df usando o método iterrows() e adicionamos uma nova coluna chamada “Coluna_nova” com base em algum cálculo ou lógica personalizada. Usamos o método at[] para acessar e atribuir o valor a uma célula específica do DataFrame.

Conclusão

Neste tutorial, exploramos diferentes maneiras de adicionar múltiplas colunas a um DataFrame usando a biblioteca Pandas. Vimos como adicionar uma única coluna, múltiplas colunas com atribuição direta, colunas com base em uma função, em operações entre colunas existentes, em condições, em dados externos, com cálculos complexos e iterando sobre o DataFrame. Essas técnicas são úteis para manipular e transformar dados em um DataFrame, permitindo uma análise e visualização mais eficazes.

FAQs sobre adição de múltiplas colunas com Pandas

  1. Posso adicionar colunas a um DataFrame vazio? Sim, é possível adicionar colunas a um DataFrame vazio usando os mesmos métodos demonstrados neste tutorial. Basta criar um DataFrame vazio e adicionar as colunas conforme necessário.

  2. Posso adicionar colunas em uma posição específica do DataFrame? O Pandas não fornece um método exclusivo para adicionar colunas em uma posição específica. No entanto, é possível reorganizar as colunas após adicioná-las ao DataFrame usando a função reindex() ou a função reorder_columns() do pacote dplython.

  3. Como faço para remover colunas de um DataFrame? Você pode remover colunas de um DataFrame usando o método drop() ou atribuindo um DataFrame filtrado a uma nova variável. O método drop() permite remover colunas com base em seus nomes ou índices.

  4. Posso adicionar colunas com base em condições complexas? Sim, você pode adicionar colunas com base em condições complexas usando os métodos apply() ou np.select(). Esses métodos permitem aplicar funções ou lógica personalizada para determinar os valores das novas colunas.

  5. Existe um limite para o número de colunas que posso adicionar a um DataFrame? O número de colunas que podem ser adicionadas a um DataFrame depende da capacidade de memória disponível em seu computador. No geral, o Pandas é capaz de lidar com DataFrames que possuem várias colunas contendo milhões de registros.