Data Science

Modificando Eficientemente Células de DataFrames Pandas Usando Índices

Spread the love

DataFrames Pandas são a base da manipulação de dados em Python. Frequentemente, você precisará modificar células individuais dentro do seu DataFrame. Este artigo explora três métodos eficientes para alcançar isso usando o índice do DataFrame.

Sumário

  1. Definindo valores de células com .at
  2. Definindo valores de células com .loc
  3. O método .set_value() depreciado

Definindo valores de células com .at

O acessor .at oferece uma maneira altamente eficiente de acessar e modificar uma única célula em um DataFrame usando seus rótulos de linha e coluna. Sua velocidade o torna ideal para atribuições de valor único.


import pandas as pd

# DataFrame de exemplo
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data, index=['A', 'B', 'C'])

# Define o valor da célula na linha 'B' e coluna 'col1' como 10
df.at['B', 'col1'] = 10

print(df)

Isso terá como saída:


   col1  col2
A     1     4
B    10     5
C     3     6

.at é otimizado para velocidade e simplicidade ao lidar com células únicas. No entanto, tentar atribuir vários valores resultará em um TypeError.

Definindo valores de células com .loc

O acessor .loc fornece maior flexibilidade. Ele permite indexação baseada em rótulos para linhas e colunas e pode lidar com atribuições de valores únicos ou matrizes a várias células simultaneamente.


import pandas as pd

# DataFrame de exemplo
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data, index=['A', 'B', 'C'])

# Define o valor da célula na linha 'A' e coluna 'col2' como 100
df.loc['A', 'col2'] = 100

print(df)

# Definindo múltiplos valores
df.loc[['A', 'B'], 'col1'] = [5, 15]  #Atribui 5 a A e 15 a B
print(df)

Isso terá como saída primeiro:


   col1  col2
A     1   100
B     2     5
C     3     6

E então:


   col1  col2
A     5   100
B    15     5
C     3     6

.loc é o método mais versátil, adequado para atualizações de células únicas e cenários mais complexos envolvendo várias linhas e colunas. Embora versátil, para alterações de célula única, .at é geralmente mais rápido.

O método .set_value() depreciado

O método .set_value() está depreciado nas versões mais recentes do Pandas. Embora possa ainda funcionar em versões mais antigas, usar .at ou .loc é fortemente recomendado para melhor compatibilidade e desempenho. Evite usar .set_value() em código novo.

Em resumo, tanto .at quanto .loc oferecem maneiras eficazes de modificar células individuais em um DataFrame Pandas. Prefira .at por sua velocidade e simplicidade com valores únicos, e .loc por sua flexibilidade ao trabalhar com várias células ou modificações mais complexas.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *