DEV Community

Francisco Júnior
Francisco Júnior

Posted on • Edited on

A Função `loc` do Pandas: Filtragem Detalhada e Exemplos Práticos

O Pandas é uma biblioteca popular em Python para manipulação e análise de dados tabulares. Entre as várias funções úteis que o Pandas oferece, a função loc é uma das mais poderosas e versáteis. A função loc é utilizada para selecionar e filtrar dados em um DataFrame com base em rótulos de linhas e colunas, oferecendo uma maneira eficaz de acessar informações específicas de um conjunto de dados. Neste artigo, exploraremos em detalhes a função loc, seu uso e forneceremos diversos exemplos de filtragem.

Visão Geral da Função loc

A função loc permite que você selecione um subconjunto de linhas e colunas de um DataFrame usando rótulos de índice e de coluna. Sua sintaxe básica é:

dataframe.loc[linhas, colunas]
Enter fullscreen mode Exit fullscreen mode
  • linhas: Pode ser um rótulo de índice único, uma lista de rótulos ou um slice de rótulos, que define as linhas a serem selecionadas.
  • colunas: Pode ser um rótulo de coluna único, uma lista de rótulos ou um slice de rótulos, que define as colunas a serem selecionadas.

Exemplos de Filtragem usando a Função loc

Vamos considerar um conjunto de dados fictício de informações de alunos para ilustrar vários exemplos de uso da função loc. Primeiro, importamos a biblioteca Pandas e criamos um DataFrame de exemplo:

import pandas as pd

data = {
    'Nome': ['Alice', 'Bob', 'Carol', 'David', 'Eva'],
    'Idade': [25, 22, 28, 21, 24],
    'Gênero': ['Feminino', 'Masculino', 'Feminino', 'Masculino', 'Feminino']
}

df = pd.DataFrame(data)
df.set_index('Nome', inplace=True)
Enter fullscreen mode Exit fullscreen mode

Exemplo 1: Selecionando Linhas por Rótulo de Índice

Para selecionar uma única linha com base no rótulo de índice, usamos um rótulo de índice único dentro do método loc:

linha_bob = df.loc['Bob']
print(linha_bob)
Enter fullscreen mode Exit fullscreen mode

Exemplo 2: Selecionando Linhas por Lista de Rótulos

Para selecionar várias linhas com base em uma lista de rótulos de índice, usamos uma lista dentro do método loc:

linhas_carol_david = df.loc[['Carol', 'David']]
print(linhas_carol_david)
Enter fullscreen mode Exit fullscreen mode

Exemplo 3: Fatiando Linhas por Intervalo de Rótulos

Podemos também fatiar o DataFrame com base em um intervalo de rótulos de índice:

linhas_bob_eva = df.loc['Bob':'Eva']
print(linhas_bob_eva)
Enter fullscreen mode Exit fullscreen mode

Exemplo 4: Selecionando Linhas e Colunas Específicas

Podemos selecionar linhas e colunas específicas, passando listas de rótulos tanto para as linhas quanto para as colunas:

subset = df.loc[['Alice', 'Eva'], ['Idade', 'Gênero']]
print(subset)
Enter fullscreen mode Exit fullscreen mode

Exemplo 5: Usando Condições de Filtro

A função loc é muito útil para filtrar dados com base em condições:

alunos_mais_velhos = df.loc[df['Idade'] > 23]
print(alunos_mais_velhos)
Enter fullscreen mode Exit fullscreen mode

Exemplo 6: Combinando Condições de Filtro

Podemos usar múltiplas condições combinadas usando os operadores lógicos & (and) e | (or):

alunas_jovens = df.loc[(df['Idade'] < 25) & (df['Gênero'] == 'Feminino')]
print(alunas_jovens)
Enter fullscreen mode Exit fullscreen mode

Exemplos de Filtragem de Periodo

Vamos considerar um conjunto de dados fictício de informações de alunos para ilustrar vários exemplos de uso da função loc, incluindo filtragem de datas em diferentes situações. Primeiro, importamos a biblioteca Pandas e criamos um DataFrame de exemplo:

import pandas as pd

data = {
    'Nome': ['Alice', 'Bob', 'Carol', 'David', 'Eva'],
    'Idade': [25, 22, 28, 21, 24],
    'Gênero': ['Feminino', 'Masculino', 'Feminino', 'Masculino', 'Feminino'],
    'Data de Nascimento': ['1998-05-15', '2001-02-28', '1995-11-10', '2002-07-03', '1999-09-21']
}

df = pd.DataFrame(data)
df['Data de Nascimento'] = pd.to_datetime(df['Data de Nascimento'])
df.set_index('Nome', inplace=True)
Enter fullscreen mode Exit fullscreen mode

Exemplo 1: Filtragem de Datas por Ano

Para filtrar as linhas com base em um ano específico em uma coluna de datas, usamos o método loc e a propriedade .year para extrair o ano:

alunos_nascidos_em_1999 = df.loc[df['Data de Nascimento'].dt.year == 1999]
print(alunos_nascidos_em_1999)
Enter fullscreen mode Exit fullscreen mode

Exemplo 2: Filtragem de Datas por Mês

Podemos também filtrar as linhas com base em um mês específico:

alunos_nascidos_em_setembro = df.loc[df['Data de Nascimento'].dt.month == 9]
print(alunos_nascidos_em_setembro)
Enter fullscreen mode Exit fullscreen mode

Exemplo 3: Filtragem de Datas por Dia

Para filtrar as linhas com base em um dia específico:

alunos_nascidos_no_dia_15 = df.loc[df['Data de Nascimento'].dt.day == 15]
print(alunos_nascidos_no_dia_15)
Enter fullscreen mode Exit fullscreen mode

Exemplo 4: Filtragem por Período

Podemos criar um período e usar isso para filtrar os dados:

import pandas as pd

periodo = pd.Period('2000-01')
alunos_nascidos_em_janeiro_de_2000 = df.loc[df['Data de Nascimento'].dt.to_period('M') == periodo]
print(alunos_nascidos_em_janeiro_de_2000)
Enter fullscreen mode Exit fullscreen mode

Conclusão

A função loc do Pandas é uma ferramenta essencial para a seleção e filtragem de dados em DataFrames, permitindo aos usuários acessar informações específicas de maneira eficiente. Neste artigo, exploramos vários exemplos de uso da função loc para selecionar linhas e colunas com base em rótulos e condições de filtro. Com essa poderosa ferramenta em mãos, os analistas de dados podem manipular e extrair informações relevantes de conjuntos de dados complexos de forma mais eficaz.

Top comments (0)