A função Pandas DataFrame.isin() da Bi­bli­o­teca Python Pandas é utilizada para verificar de forma rápida e eficiente se de­ter­mi­na­dos valores estão presentes num DataFrame. Esta função é es­pe­ci­al­mente ú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)
python

O parâmetro values pode ser uma lista Python, um di­ci­o­ná­rio ou até mesmo outro DataFrame e contém os valores que se deseja procurar no DataFrame original.

Dica

Se não estiver a trabalhar com Da­ta­Fra­mes do Pandas, mas sim com Series, re­co­men­da­mos usar a função equi­va­lente chamada Series.isin().

Aplicação da função isin()

As pos­si­bi­li­da­des 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.

Ve­ri­fi­ca­ção da presença de valores numa coluna

A seguir, será con­si­de­rado um DataFrame com in­for­ma­ções sobre di­fe­ren­tes pessoas e seus locais de re­si­dên­cia.

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

O DataFrame re­sul­tante tem a seguinte aparência:

Nombre      Ciudad
0     Alicia    Las Palmas
1      Teo    Santiago
2     Carlos     Cáceres
3    David     Córdoba

Agora, o Pandas isin() será utilizado para verificar se de­ter­mi­na­das cidades estão presentes na coluna cor­res­pon­dente. 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)
python

O 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: bool

Filtragem 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)
python

O resultado é um DataFrame que contém apenas as linhas com as cidades que também estão presentes na lista de com­pa­ra­ção cities_to_check:

Nombre    Ciudad
2     Carlos   Cáceres
3    David   Córdoba

Verificar várias colunas

Para realizar operações de filtragem mais complexas, o Pandas isin() também pode ser usado com di­ci­o­ná­rios. No exemplo a seguir, é mostrado como trabalhar com um di­ci­o­ná­rio para verificar várias colunas de um DataFrame ao mesmo tempo. Para isso, é adi­ci­o­nada 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)
python

A chamada para a função Pandas isin(), neste caso, retorna um DataFrame com valores booleanos que indicam se as condições nas res­pec­ti­vas colunas são sa­tis­fei­tas:

Nombre  Ciudad   Edad
0    False   False  False
1    False   False   True
2    False    True  False
3    False    True   True
Ir para o menu principal