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]
-
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)