Pandas DataFrame.loc[] é um indexador da bi­bli­o­teca Python Pandas usado para se­le­ci­o­nar dados de um DataFrame com base em rótulos. Dessa forma, você pode extrair linhas e colunas es­pe­cí­fi­cas de um DataFrame.

Sintaxe do Pandas loc[]

O parâmetro passado para loc[] é a seleção de etiquetas desejada. Fora isso, a sintaxe é muito simples:

DataFrame.loc[selection]
python

No Pandas loc[], a seleção é feita prin­ci­pal­mente com base em etiquetas. O parâmetro passado pode ser uma etiqueta in­di­vi­dual, uma lista ou um intervalo de etiquetas. No entanto, também é possível utilizar matrizes booleanas.

Di­fe­ren­ças entre loc[] e iloc[]

Enquanto o Pandas DataFrame.loc[] seleciona dados com base em etiquetas, existe outro indexador se­me­lhante no Pandas, o DataFrame.iloc, que é usado para se­le­ci­o­nar dados com base em posições inteiras.

O exemplo seguinte ilustra cla­ra­mente as di­fe­ren­ças entre os dois in­de­xa­do­res. Primeiro, é criado um DataFrame do Pandas:

import pandas as pd
# Ejemplo de DataFrame
data = {'Nombre': ['Ana', 'Juan', 'Tomás'], 'Edad': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
python

O DataFrame re­sul­tante seria o seguinte:

Nombre   Edad
0      Ana     23
1     Juan     35
2    Tomás     30

Se qui­sés­se­mos extrair «Ana» do DataFame, po­de­ría­mos usar tanto loc[] como iloc[]. O resultado obtido é o mesmo, mas seguindo dois caminhos di­fe­ren­tes:

# Con loc por etiqueta
print(df.loc[0, 'Nombre'])  # Salida: 'Ana'
# Con iloc por posición
print(df.iloc[0, 0])  # Salida: 'Ana'
python

Como utilizar o Pandas DataFrame.loc[]

Pandas loc[] serve para extrair sub­con­jun­tos de um DataFrame, seja uma ou várias linhas ou colunas. O indexador loc[] pode ter di­fe­ren­tes apli­ca­ções de uso.

Seleção de uma linha in­di­vi­dual

Em seguida, criaremos um DataFrame de exemplo usando o seguinte código:

import pandas as pd
data = {
    'Nombre': ['Ana', 'Juan', 'Tomás'],
    'Edad': [23, 35, 30],
    'Ciudad': ['León', 'Madrid', 'Salamanca']
}
df = pd.DataFrame(data)
print(df)
python

O DataFrame re­sul­tante seria o seguinte:

Nombre  Edad    Ciudad
0      Ana    23      León
1     Juan    35    Madrid
2    Tomás    30 Salamanca

Para se­le­ci­o­nar os dados da linha com o índice 1 (que cor­res­ponde a Juan), pode-se usar o indexador Pandas loc[]:

juan_data = df.loc[1]
print(juan_data)
python

O resultado seria o seguinte:

Nombre         Juan
Edad             35
Ciudad       Madrid
Name: 1, dtype: object

Seleção de várias colunas

Também pode usar DataFrame.loc[] para se­le­ci­o­nar um sub­con­junto de colunas. O código seleciona as colunas «Nome» e «Cidade» para todas as linhas:

name_stadt = df.loc[:, ['Nombre', 'Ciudad']]
print(name_stadt)
python

Como resultado, obtém um sub­con­junto do DataFrame original:

Nombre    Ciudad
0      Ana      León
1     Juan    Madrid
2    Tomás Salamanca

Seleção baseada numa condição

Com o Pandas loc[] também é possível se­le­ci­o­nar linhas com base numa condição. Neste caso, são uti­li­za­dos ope­ra­do­res de com­pa­ra­ção booleanos. No código a seguir, por exemplo, serão filtradas todas as pessoas com mais de 25 anos:

older_than_25 = df.loc[df['Edad'] > 25]
print(older_than_25)
python
Nombre  Edad    Ciudad
1     Juan    35    Madrid
2    Tomás    30 Salamanca
Ir para o menu principal