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