Data Wrangling

Acesso Eficiente a Valores de Célula em DataFrames Pandas

Spread the love

DataFrames Pandas são essenciais para manipulação de dados em Python. Acessar valores de células individuais de forma eficiente é uma tarefa comum. Este artigo explora vários métodos para recuperar esses valores, destacando seus pontos fortes e fracos.

Sumário

Indexação baseada em inteiros: iloc

.iloc fornece indexação baseada em inteiros versátil. Usa indexação baseada em zero para linhas e colunas.


import pandas as pd

data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)

# Acessa o valor na linha 1, coluna 0 (segunda linha, primeira coluna)
value = df.iloc[1, 0]
print(f"Valor usando iloc: {value}")  # Saída: 20

# Acessa o valor na linha 0, coluna 1 (primeira linha, segunda coluna)
value = df.iloc[0, 1]
print(f"Valor usando iloc: {value}")  # Saída: 40

.iloc é eficiente, especialmente para DataFrames grandes, e oferece controle preciso sobre a seleção de células usando índices numéricos.

iat e at para acesso a células individuais

.iat e .at oferecem acesso conciso a células individuais. .iat usa indexação baseada em inteiros, enquanto .at usa indexação baseada em rótulos (nomes das colunas).


import pandas as pd

data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)

# Obtém o valor na linha 1, coluna 0 usando iat
value = df.iat[1, 0]
print(f"Valor usando iat: {value}")  # Saída: 20

# Obtém o valor na linha 0, coluna 'col2' usando at
value = df.at[0, 'col2']
print(f"Valor usando at: {value}")  # Saída: 40

Esses métodos são mais rápidos para acesso a células individuais do que .iloc porque retornam um valor escalar, não uma Series ou DataFrame.

Acesso via coluna e índice: df['col_name'].iloc[]

Esta abordagem seleciona uma coluna e depois acessa uma linha específica dentro do array NumPy subjacente dessa coluna. É menos flexível e eficiente do que os métodos anteriores.


import pandas as pd

data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)

# Acessa o valor na linha 1 de 'col1'
value = df['col1'].iloc[1] #Mais eficiente que .values[]
print(f"Valor usando iloc na coluna: {value}")  # Saída: 20

Embora isso possa parecer conveniente, usar .iloc diretamente na seleção da coluna geralmente é preferido para eficiência e clareza.

Em resumo, .iloc, .iat e .at fornecem maneiras eficientes e legíveis de acessar células de DataFrame. A abordagem baseada em colunas usando .iloc na coluna selecionada geralmente é preferida em relação ao uso de .values[]. Escolha o método mais adequado às suas necessidades e estilo de codificação.

Deixe um comentário

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