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
iat
eat
para acesso a células individuais- Acesso via coluna e índice:
df['col_name'].iloc[]
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.