Tanto “loc” quanto “iloc” são métodos de indexação do pandas para selecionar dados de um DataFrame. A principal diferença entre eles é a maneira como eles referenciam as linhas e colunas do DataFrame:
- “loc” é baseado em rótulos de índice: ele permite selecionar linhas e colunas com base em seus rótulos de índice, que podem ser nomes ou valores numéricos. O formato da sintaxe do loc é
df.loc[linhas, colunas]
. - “iloc” é baseado em índices inteiros: ele permite selecionar linhas e colunas com base em suas posições numéricas no DataFrame, começando de zero. O formato da sintaxe do iloc é
df.iloc[linhas, colunas]
.
Em resumo, a diferença é que “loc” usa rótulos de índice para selecionar dados, enquanto “iloc” usa índices inteiros. Por exemplo, se o índice do DataFrame for uma série numérica como [0, 1, 2, 3, …], então “iloc” pode ser usado para selecionar as linhas com base em suas posições numéricas, enquanto “loc” pode ser usado para selecionar as linhas com base em seus rótulos de índice, que poderiam ser nomes ou outros valores não numéricos.
Alguns exemplos de como usar os métodos “loc” e “iloc” para selecionar dados de um DataFrame:
- Selecionando uma única linha com “loc” e “iloc”:
# Selecionando a primeira linha usando loc
df.loc[0]
# Selecionando a primeira linha usando iloc
df.iloc[0]
- Selecionando um intervalo de linhas com “loc” e “iloc”:
# Selecionando as linhas da 5ª à 10ª usando loc
df.loc[5:10]
# Selecionando as linhas da 5ª à 10ª usando iloc
df.iloc[5:11]
- Selecionando linhas e colunas específicas com “loc” e “iloc”:
# Selecionando as linhas de 0 a 4 e as colunas de 'A' a 'C' usando loc
df.loc[0:4, 'A':'C']
# Selecionando as linhas de 0 a 4 e as colunas de 0 a 2 usando iloc
df.iloc[0:5, 0:3]
- Selecionando linhas com base em condições usando “loc”:
# Selecionando as linhas onde a coluna 'idade' é maior que 30
df.loc[df['idade'] > 30]
- Selecionando linhas com base em condições usando “iloc”:
# Selecionando as linhas onde a coluna 'idade' é maior que 30
df.iloc[(df['idade'] > 30).values]
Observação: para usar “iloc” com condições, é necessário converter o objeto booleano retornado pela condição em uma matriz booleana usando o método “.values”.