Skip to content
Tutoriais
Pandas
Using DataFrame.loc to Access and Manipulate Data in Pandas

Usando DataFrame.loc para acessar e manipular dados no Pandas

A manipulação de dados é fundamental para qualquer projeto de ciência de dados, e a biblioteca Pandas é uma das ferramentas mais populares usadas para essas tarefas. Dentro do Pandas, o método loc[] é frequentemente usado para acessar e filtrar dados em um DataFrame por rótulo ou matriz booleana. Neste artigo, vamos mergulhar na sintaxe e exemplos de uso do Pandas DataFrame loc[] e explorar suas vantagens sobre outros métodos.

Quer criar visualizações de dados rapidamente em Python?

PyGWalker é um projeto Python de código aberto que pode ajudar a acelerar o fluxo de trabalho de análise e visualização de dados diretamente em ambientes baseados em notebooks Jupyter.

PyGWalker (opens in a new tab) transforma seu DataFrame Pandas (ou DataFrame Polars) em uma IU visual, onde você pode arrastar e soltar variáveis para criar gráficos com facilidade. Basta usar o seguinte código:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Você pode executar o PyGWalker agora mesmo com esses notebooks on-line:

E não se esqueça de nos dar uma ⭐️ no GitHub!

Execute o PyGWalker no Kaggle Notebook (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)Dê uma ⭐️ ao PyGWalker no GitHub (opens in a new tab)
Execute o PyGWalker no Kaggle Notebook (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)Execute o PyGWalker no Google Colab (opens in a new tab)

O que é o Pandas DataFrame loc[]?

Pandas DataFrame loc[] é um método para selecionar e filtrar dados em um Pandas DataFrame. O método loc[] recebe um ou dois argumentos, que podem ser um rótulo de linha ou uma matriz booleana. Quando um rótulo de linha é fornecido, loc[] retorna um DataFrame contendo a(s) linha(s) que correspondem ao rótulo. Quando uma matriz booleana é fornecida, loc[] retorna um DataFrame contendo a(s) linha(s) onde a matriz booleana é True.

Como usar o Pandas DataFrame loc[]?

Acessar linhas e colunas por rótulo(s) usando o Pandas DataFrame loc[] é bastante simples. Aqui está um exemplo:

import pandas as pd
 
# Criando um DataFrame de amostra
df = pd.DataFrame({'Idade': [23, 24, 25, 26], 
                   'Nome': ['John', 'Mike', 'Sarah', 'Rachel'], 
                   'Notas': [85, 90, 80, 95], 
                   'ID': ['A101', 'A102', 'A103', 'A104']})
 
# Acessando uma linha usando o rótulo da linha
linha = df.loc[1]
# Acessando várias linhas usando uma lista de rótulos de linha
linhas = df.loc[[0, 2]]
 
# Acessando uma coluna usando o rótulo da coluna
idades = df.loc[:, 'Idade']
 
# Acessando várias colunas usando uma lista de rótulos de coluna
subconjunto = df.loc[:, ['Nome', 'Notas']]

No exemplo acima, criamos um DataFrame de exemplo com quatro linhas e quatro colunas. Usamos loc[] para acessar linhas e colunas por label(s). Quando fornecemos um único label para loc[], ele retorna uma Series do Pandas, e quando são fornecidos vários labels, ele retorna um DataFrame.

Também podemos filtrar linhas com base em uma condição dada usando loc[]. Aqui está um exemplo:

# Filtrar linhas com base em uma condição
df_filtrado = df.loc[df['Idade'] > 24]

No exemplo acima, estamos usando loc[] para filtrar as linhas em que a coluna Idade é maior que 24.

Quais são as vantagens do uso do loc[] do Pandas DataFrame?

Uma das principais vantagens do uso do loc[] do Pandas DataFrame é sua capacidade de lidar com indexação baseada em rótulos. Como a indexação baseada em rótulos é mais intuitiva e legível do que a indexação baseada em inteiros, o uso de loc[] pode tornar seu código mais expressivo e menos propenso a erros.

Outra vantagem do loc[] é que você também pode usá-lo para atribuir novos valores a um subconjunto do DataFrame.

# Alterar valores para linhas específicas
df.loc[0:1, 'Idade'] = 24

No exemplo acima, estamos usando loc[] para alterar o valor da idade das duas primeiras linhas do DataFrame.

Como o Pandas DataFrame loc[] é diferente do Pandas iloc[]?

O Pandas iloc[] é semelhante ao loc[], mas em vez de indexação baseada em rótulos, o iloc[] usa indexação baseada em inteiros. Aqui está um exemplo:

# Acessar a primeira linha usando o iloc[]
df.iloc[0]
 
# Acessar linhas e colunas usando a posição de inteiros
df.iloc[0:2, 1:3]

No primeiro exemplo, estamos acessando a primeira linha do DataFrame usando iloc[]. No segundo exemplo, usamos o iloc[] para acessar um subconjunto do DataFrame usando as posições de inteiros.

Embora o iloc[] seja mais rápido que o loc[], é menos expressivo e pode levar a erros se o DataFrame for modificado. Além disso, uma vez que o iloc[] usa posições de inteiros, ele pode se tornar confuso se o DataFrame for classificado ou modificado, enquanto o loc[] é mais robusto a tais mudanças.

É possível selecionar/filtrar linhas e colunas por nomes/rótulos usando o Pandas DataFrame loc[]?

Sim, é possível selecionar/filtrar linhas e colunas por rótulos usando o Pandas DataFrame loc[]. Aqui está um exemplo:

# Filtrar linhas usando o rótulo da coluna e condição
df_filtrado = df.loc[df['Nome'] == 'Mike']
 
# Acesse um subconjunto de linhas e colunas usando rótulos
df_subconjunto = df.loc[0:1, ['Nome', 'Idade']]

No primeiro exemplo, estamos usando loc[] para filtrar linhas com base em uma coluna de condição usando um rótulo de coluna. No segundo exemplo, estamos acessando um subconjunto de linhas e colunas usando loc[] e rótulos de coluna.

Conclusão

Neste artigo, exploramos o método Pandas DataFrame loc[], sua sintaxe e exemplos e suas vantagens em relação a outros métodos. Mostramos como loc[] pode ser usado para acessar e filtrar dados com base em rótulo ou matriz booleana e como é diferente do indexação baseada em inteiro usando iloc[]. Ao usar o Pandas DataFrame loc[], você pode escrever um código mais expressivo e robusto para análise e manipulação de dados em Python.