Pandas é uma ferramenta indispensável para quem trabalha com análise de dados em Python. Entre as suas diversas funcionalidades, a capacidade de modificar linhas e colunas em DataFrames se destaca. Este artigo apresenta um roteiro completo e detalhado sobre como realizar essas atualizações utilizando a biblioteca Pandas.
Introdução aos DataFrames
Um DataFrame é essencialmente uma tabela, estruturada em linhas e colunas. As linhas representam cada registro ou observação, enquanto as colunas contêm os diferentes atributos ou variáveis associadas a esses registros. O Pandas oferece um conjunto abrangente de métodos para alterar e manipular os dados dentro dessas estruturas. Dominar essas técnicas é crucial para otimizar os processos de limpeza, transformação e análise de dados.
Atualizando Linhas em DataFrames
Utilizando o Método .loc
O método .loc
possibilita a modificação de linhas específicas em um DataFrame, utilizando os rótulos das linhas (índices). Ele requer o rótulo ou uma lista de rótulos como primeiro parâmetro e a nova atribuição como segundo.
Exemplo:
import pandas as pd
df = pd.DataFrame({'Nome': ['João', 'Maria', 'Pedro'], 'Idade': [25, 30, 35]})
Para atualizar a idade de João:
df.loc['João', 'Idade'] = 26
Para atualizar as idades de Maria e Pedro:
df.loc[['Maria', 'Pedro'], 'Idade'] = [28, 36]
Usando o Método .iloc
O método .iloc
possibilita a atualização de linhas utilizando suas posições numéricas (índices inteiros). Ele exige a posição da linha ou uma lista de posições como primeiro argumento e a nova atribuição como segundo.
Exemplo:
Para atualizar a idade do segundo registro:
df.iloc[1, 1] = 27
Para atualizar as idades do primeiro e terceiro registros:
df.iloc[[0, 2], 1] = [24, 37]
Empregando o Método .at
O método .at
é ideal para alterar um único valor dentro do DataFrame, utilizando seus rótulos de linha e coluna. Ele demanda o rótulo da linha e o rótulo da coluna, respectivamente, como primeiro e segundo argumentos.
Exemplo:
Para atualizar a idade de Maria:
df.at['Maria', 'Idade'] = 29
Modificando Colunas em DataFrames
Utilizando o Método .loc
para Colunas
O método .loc
também permite modificar colunas em um DataFrame, utilizando os rótulos das colunas. Ele requer o rótulo ou uma lista de rótulos de colunas como primeiro argumento e a nova atribuição como segundo.
Exemplo:
Para atualizar o nome do primeiro registro:
df.loc[0, 'Nome'] = 'João Silva'
Para atualizar os nomes de todos os registros:
df.loc[:, 'Nome'] = df['Nome'].str.upper()
Usando o Método .iloc
para Colunas
O método .iloc
também permite atualizar colunas, utilizando seus índices numéricos. Requer a posição da coluna ou uma lista de posições como primeiro argumento e a nova atribuição como segundo.
Exemplo:
Para atualizar o nome da primeira coluna:
df.iloc[:, 0] = df['Nome'].str.title()
Para atualizar as duas primeiras colunas:
df.iloc[:, :2] = df[['Nome', 'Idade']]
Empregando o Método .assign
O método .assign
é usado para adicionar novas colunas ou atualizar as existentes em um DataFrame. Ele aceita um dicionário como argumento, onde as chaves são nomes de colunas e os valores são os dados ou expressões para as colunas.
Exemplo:
Para adicionar uma nova coluna ‘Sobrenome’:
df = df.assign(Sobrenome='Silva')
Para atualizar a coluna ‘Nome’:
df = df.assign(Nome=df['Nome'].str.lower())
Conclusão
A capacidade de modificar linhas e colunas em um DataFrame é fundamental na manipulação e análise de dados com Python Pandas. Este artigo apresentou um guia detalhado sobre os diversos métodos disponíveis para realizar essas tarefas, incluindo .loc
, .iloc
e .assign
. Compreender e utilizar esses métodos capacita os usuários a alterar e atualizar dados de forma eficiente e precisa, agilizando a preparação de dados, a limpeza e a análise estatística.
Perguntas Frequentes
1. Qual o método mais eficiente para alterar um único elemento em um DataFrame?
O método .at
é o mais rápido para essa finalidade, pois acessa diretamente o elemento pelos rótulos.
2. Qual método é mais indicado para modificar múltiplas linhas ou colunas?
Os métodos .loc
ou .iloc
são os mais apropriados para modificar várias linhas ou colunas, utilizando rótulos ou posições.
3. Como alterar várias linhas ou colunas de uma vez?
Você pode usar .loc
ou .iloc
, passando uma lista de rótulos ou posições, respectivamente.
4. Como adicionar uma nova coluna a um DataFrame?
Utilize o método .assign
, fornecendo um dicionário onde as chaves são os nomes das novas colunas e os valores, os dados.
5. É possível atualizar várias colunas usando expressões?
Sim, o método .assign
permite atualizar múltiplas colunas utilizando expressões, onde as chaves são os nomes das colunas e os valores são as expressões que retornam os dados atualizados.
6. Qual método é melhor para lidar com valores ausentes?
O método .fillna
é o mais indicado para preencher valores ausentes, substituindo-os por um valor específico ou uma expressão.
7. Como atualizar linhas com base em condições?
Use o método .query
para selecionar as linhas que atendem a uma condição e depois utilize .assign
para atualizar essas linhas.
8. Como atualizar colunas baseando-se em uma condição?
Use o método .mask
para gerar uma máscara booleana e use o operador de atribuição condicional para alterar os valores das colunas correspondentes às linhas verdadeiras.