Tuesday, January 14, 2025

Python: .iloc e .loc

Ainda na série "Vivendo e Aprendendo", agora foi em Python.

Faz um bom tempo que faço confusão com os métodos .iloc e .loc do Pandas. E hoje, resolvi estudar um pouco mais e entendê-los.

Vou compartilhar minhas anotações aqui na esperança que ajude outras pessoas a entenderem também...

Começando do básico, .iloc e .loc são métodos do Pandas, uma poderosa biblioteca do Python utilizada para manipulação e análise de dados. Eles são usados especificamente para indexação e seleção de dados de dataframes.


- Método .iloc

Usado para indexação baseada na posição dos índices. Funciona com números inteiros e permite selecionar linhas e colunas pelo índice de suas posições.

(Lembrando que, quando criamos um dataframe no Pandas sem especificar índices personalizados, eles são atribuidos automaticamente: índices inteiros sequenciais começando do 0 - ou seja, a primeira linha / coluna terá índice 0, a segunda linha / coluna terá índice 1 e assim por diante. Há maneira de redefini-los, personalizá-los, mas isso é papo para outro post.)


- Método .loc

Usado para indexação baseada no rótulo dos índices. Funciona com os nomes dos índices e permite selecionar linhas e colunas pelos rótulos que forma atribuídos a eles.


Apesar do foco dos métodos serem diferentes (.iloc: índices | .loc: rótulos), a sintaxe deles é semelhante:

dataframe.método[linha, coluna]

df.iloc[linha, coluna] OU df.loc[linha, coluna]


E daí, refinando, por exemplo, o .iloc:


df.iloc[:, coluna] --> Seleciona todas (símbolo :) as linhas da coluna indicada do dataframe df

Exemplo:

df.iloc[:, 1] --> Seleciona todas as linhas da coluna de índice 1, ou seja, a 2a coluna.


df.iloc[linha, :] --> Seleciona todas (símbolo :) as colunas da linha indicada do dataframe df

Exemplo:

df.iloc[2, :] --> Seleciona todas as colunas da linhas de índice 2, ou seja, a 3a linha.

Observação: este cenário (selecionar todas as colunas) para linhas específicas pode ser escrita de forma simplificada: df.iloc[linha]. Assim, o comando df.iloc[2] retornaria o mesmo resultado que df.iloc[2, :].


Selecionando intervalos de linhas ou colunas:

df.iloc[linhas_início:linhas_fim]

df.iloc[:, colunas_início:colunas_fim]


E, para seleção de múltiplas linhas e colunas:

df.iloc[linhas_início:linhas_fim, colunas_início:colunas_fim]


E, para o .loc funciona da mesma forma, mas usando o rótulo das linhas e colunas.


#LearnerMidset #VivendoEAprendendo #AWTechBits

No comments:

Post a Comment