Pesquisar em DataFrames com Pandas isin()
A função Pandas DataFrame.isin() da Biblioteca Python Pandas é utilizada para verificar de forma rápida e eficiente se determinados valores estão presentes num DataFrame. Esta função é especialmente útil quando se deseja verificar vários valores ao mesmo tempo.
Sintaxe da função isin() do Pandas
O Pandas isin() aceita apenas um parâmetro, portanto a sintaxe básica da função é muito simples e é a seguinte:
DataFrame.isin(values)pythonO parâmetro values pode ser uma lista Python, um dicionário ou até mesmo outro DataFrame e contém os valores que se deseja procurar no DataFrame original.
Se não estiver a trabalhar com DataFrames do Pandas, mas sim com Series, recomendamos usar a função equivalente chamada Series.isin().
Aplicação da função isin()
As possibilidades de aplicação do isin() são variadas: com esta função, você não só pode verificar a presença de valores, mas também filtrar o seu DataFrame.
Verificação da presença de valores numa coluna
A seguir, será considerado um DataFrame com informações sobre diferentes pessoas e seus locais de residência.
import pandas as pd
# Crear un DataFrame de ejemplo
data = {
'Nombre': ['Alicia', 'Teo', 'Carlos', 'David'],
'Ciudad': ['Las Palmas', 'Santiago', 'Cáceres', 'Córdoba']
}
df = pd.DataFrame(data)
print(df)pythonO DataFrame resultante tem a seguinte aparência:
Nombre Ciudad
0 Alicia Las Palmas
1 Teo Santiago
2 Carlos Cáceres
3 David CórdobaAgora, o Pandas isin() será utilizado para verificar se determinadas cidades estão presentes na coluna correspondente. Para isso, é criada uma lista com as cidades que se deseja verificar e, em seguida, aplica-se a função na coluna do DataFrame chamada «Cidade»:
# Ciudades que se desea verificar
cities_to_check = ['Cáceres', 'Córdoba', 'Madrid']
# Aplicación de la función isin()
result = df['Ciudad'].isin(cities_to_check)
print(result)pythonO resultado é uma série de valores booleanos que indicam se cada cidade está presente na lista:
0 False
1 False
2 True
3 True
Name: Ciudad, dtype: boolFiltragem de um DataFrame com isin()
O Pandas isin() também pode ser usado para filtrar o DataFrame e manter apenas as linhas em que as cidades de cities_to_check estão presentes.
# Filtrado del DataFrame basado en isin()
filtered_df = df[df['Ciudad'].isin(cities_to_check)]
print(filtered_df)pythonO resultado é um DataFrame que contém apenas as linhas com as cidades que também estão presentes na lista de comparação cities_to_check:
Nombre Ciudad
2 Carlos Cáceres
3 David CórdobaVerificar várias colunas
Para realizar operações de filtragem mais complexas, o Pandas isin() também pode ser usado com dicionários. No exemplo a seguir, é mostrado como trabalhar com um dicionário para verificar várias colunas de um DataFrame ao mesmo tempo. Para isso, é adicionada uma coluna ao DataFrame original e, em seguida, é usada a função isin():
# Crear un DataFrame de ejemplo
data = {
'Nombre': ['Alicia', 'Teo', 'Carlos', 'David'],
'Ciudad': ['Las Palmas', 'Santiago', 'Cáceres', 'Córdoba'],
'Edad': [25, 30, 35, 40]
}
df = pd.DataFrame(data)
# Diccionario con los valores que se desean verificar
values_to_check = {
'Ciudad': ['Cáceres', 'Córdoba'],
'Edad': [30, 40]
}
# Aplicar isin() con un diccionario
result = df.isin(values_to_check)
print(result)pythonA chamada para a função Pandas isin(), neste caso, retorna um DataFrame com valores booleanos que indicam se as condições nas respectivas colunas são satisfeitas:
Nombre Ciudad Edad
0 False False False
1 False False True
2 False True False
3 False True True