Selecionar dados de DataFrames com Pandas loc[]
Pandas DataFrame.loc[] é um indexador da biblioteca Python Pandas usado para selecionar dados de um DataFrame com base em rótulos. Dessa forma, você pode extrair linhas e colunas específicas 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]pythonNo Pandas loc[], a seleção é feita principalmente com base em etiquetas. O parâmetro passado pode ser uma etiqueta individual, uma lista ou um intervalo de etiquetas. No entanto, também é possível utilizar matrizes booleanas.
Diferenças entre loc[] e iloc[]
Enquanto o Pandas DataFrame.loc[] seleciona dados com base em etiquetas, existe outro indexador semelhante no Pandas, o DataFrame.iloc, que é usado para selecionar dados com base em posições inteiras.
O exemplo seguinte ilustra claramente as diferenças entre os dois indexadores. 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)pythonO DataFrame resultante seria o seguinte:
Nombre Edad
0 Ana 23
1 Juan 35
2 Tomás 30Se quiséssemos extrair «Ana» do DataFame, poderíamos usar tanto loc[] como iloc[]. O resultado obtido é o mesmo, mas seguindo dois caminhos diferentes:
# Con loc por etiqueta
print(df.loc[0, 'Nombre']) # Salida: 'Ana'
# Con iloc por posición
print(df.iloc[0, 0]) # Salida: 'Ana'pythonComo utilizar o Pandas DataFrame.loc[]
Pandas loc[] serve para extrair subconjuntos de um DataFrame, seja uma ou várias linhas ou colunas. O indexador loc[] pode ter diferentes aplicações de uso.
Seleção de uma linha individual
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)pythonO DataFrame resultante seria o seguinte:
Nombre Edad Ciudad
0 Ana 23 León
1 Juan 35 Madrid
2 Tomás 30 SalamancaPara selecionar os dados da linha com o índice 1 (que corresponde a Juan), pode-se usar o indexador Pandas loc[]:
juan_data = df.loc[1]
print(juan_data)pythonO resultado seria o seguinte:
Nombre Juan
Edad 35
Ciudad Madrid
Name: 1, dtype: objectSeleção de várias colunas
Também pode usar DataFrame.loc[] para selecionar um subconjunto de colunas. O código seleciona as colunas «Nome» e «Cidade» para todas as linhas:
name_stadt = df.loc[:, ['Nombre', 'Ciudad']]
print(name_stadt)pythonComo resultado, obtém um subconjunto do DataFrame original:
Nombre Ciudad
0 Ana León
1 Juan Madrid
2 Tomás SalamancaSeleção baseada numa condição
Com o Pandas loc[] também é possível selecionar linhas com base numa condição. Neste caso, são utilizados operadores de comparaçã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)pythonNombre Edad Ciudad
1 Juan 35 Madrid
2 Tomás 30 Salamanca