# Buscar en DataFrames con Pandas isin()

La función de Pandas `DataFrame.isin()` de la [Biblioteca Python Pandas](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-pandas/) se utiliza para verificar de manera rápida y eficiente si ciertos valores están presentes en un DataFrame. Esta función es especialmente útil cuando se desea comprobar varios valores al mismo tiempo.

## Sintaxis de la función `isin()` de Pandas

Pandas `isin()` acepta solo un parámetro, por lo que la sintaxis básica de la función es muy sencilla y es la siguiente:

```python
DataFrame.isin(values)
```

El parámetro `values` puede ser una **[lista de Python](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-list/), un [diccionario](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-dictionary/) o incluso otro DataFrame** y contiene los valores que se desean buscar en el DataFrame original.

Consejo Si no estás trabajando con DataFrames de Pandas, sino con Series, te recomendamos usar la función equivalente llamada `Series.isin()`.

## Aplicación de la función `isin()`

Las posibilidades de aplicación de `isin()` son variadas: con esta función no solo puedes verificar la presencia de valores, sino también filtrar tu DataFrame.

### Verificación de la presencia de valores en una columna

A continuación, se considerará un DataFrame con información sobre diferentes personas y sus lugares de residencia.

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

El DataFrame resultante tiene el siguiente aspecto:

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

Ahora se utilizará Pandas `isin()` para verificar si ciertas ciudades están presentes en la columna correspondiente. Para ello, se crea una lista con las ciudades que se desea comprobar y luego se aplica la función en la columna del DataFrame llamada ‘Ciudad’:

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

El resultado es una serie de valores booleanos que indica si cada ciudad está presente en la lista:

```none
0    False
1    False
2     True
3     True
Name: Ciudad, dtype: bool
```

### Filtrado de un DataFrame con `isin()`

Pandas `isin()` también se puede utilizar para filtrar el DataFrame y conservar solo las filas en las que las ciudades de `cities_to_check` están presentes.

```python
# Filtrado del DataFrame basado en isin()
filtered_df = df[df['Ciudad'].isin(cities_to_check)]
print(filtered_df)
```

El resultado es un DataFrame que solo contiene las filas con las ciudades que también están presentes en la lista de comparación `cities_to_check`:

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

### Verificar varias columnas

Para realizar operaciones de filtrado más complejas, Pandas `isin()` también puede utilizarse con diccionarios. En el siguiente ejemplo, se muestra cómo trabajar con un diccionario para verificar varias columnas de un DataFrame al mismo tiempo. Para ello, se añade una columna al DataFrame original y luego se utiliza la función `isin()`:

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

La llamada a la función Pandas `isin()` en este caso devuelve un DataFrame con valores booleanos que indican si se cumplen las condiciones en las respectivas columnas:

```none
Nombre  Ciudad   Edad
0    False   False  False
1    False   False   True
2    False    True  False
3    False    True   True
```


This is a markdown version of: [https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/funcion-isin-para-dataframes-de-pandas-en-python/](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/funcion-isin-para-dataframes-de-pandas-en-python/) for AI/LLM consumption.