Buscar en DataFrames con Pandas isin()
La función de Pandas DataFrame.isin()
de la Biblioteca 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.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos
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:
DataFrame.isin(values)
pythonEl parámetro values
puede ser una lista de Python, un diccionario o incluso otro DataFrame y contiene los valores que se desean buscar en el DataFrame original.
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.
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)
pythonEl DataFrame resultante tiene el siguiente aspecto:
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’:
# 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)
pythonEl resultado es una serie de valores booleanos que indica si cada ciudad está presente en la lista:
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.
# Filtrado del DataFrame basado en isin()
filtered_df = df[df['Ciudad'].isin(cities_to_check)]
print(filtered_df)
pythonEl 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
:
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()
:
# 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)
pythonLa 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:
Nombre Ciudad Edad
0 False False False
1 False False True
2 False True False
3 False True True