Función Pandas DataFrame DataFrame.isin()

Jinku Hu 30 enero 2023
  1. La sintaxis de pandas.DataFrame.isin(values)
  2. Códigos de ejemplo: DataFrame.isin() Con iterable como entrada
  3. Códigos de ejemplo: DataFrame.isin() Con Diccionario como entrada
  4. Códigos de ejemplo: DataFrame.isin() Con Series como entrada
  5. Códigos de ejemplo: DataFrame.isin() Con DataFrame como entrada
Función Pandas DataFrame DataFrame.isin()

La función pandas.DataFrame.isin(values) comprueba si cada elemento de la llamada DataFrame contiene el valor especificado en los values de entrada.

La sintaxis de pandas.DataFrame.isin(values)

DataFrame.isin(values)

Parámetros

values Iterable - list, tuple, set, etc. </Dictionary, Series, DataFrame

Retorna

Devuelve un DataFrame de Booleans de la misma dimensión del llamador DataFrame indicando si cada elemento contiene los “valores” de entrada.

Códigos de ejemplo: DataFrame.isin() Con iterable como entrada

Cuando la Python iterable es la entrada, la función DataFrame.isin() de Pandas comprueba si cada valor en el DataFrame contiene algún valor en el iterable.

import pandas as pd

df = pd.DataFrame({'Sales': [100, 200], 'Profit': [200, 400]})

df = df.isin([200, 400])
print(df)

La llamada DataFrame es

   Sales  Profit
0    100     200
1    200     400

Resultado:

   Sales  Profit
0  False    True
1   True    True

Aquí, 200 y 400 presentes en la lista [200, 400], por lo tanto, los valores en el DataFrame devuelto cuyos valores originales son 200 y 400 son True. El valor 100 no está en la lista [200, 400], por lo tanto, el valor en su posición devuelve False.

Códigos de ejemplo: DataFrame.isin() Con Diccionario como entrada

Si el tipo de valor de entrada es Diccionario, la función isin() comprueba no sólo los valores sino también la clave. Devuelve True sólo cuando el nombre de la columna es el mismo que la clave y el valor de la celda contiene en el valor del diccionario.

import pandas as pd

df = pd.DataFrame({"Sales": [100, 200], "Profit": [200, 400]})

df = df.isin({"Sales": [200, 400]})
print(df)

Resultado:

   Sales  Profit
0  False   False
1   True   False

En el primer ejemplo, los valores de las columnas Profit son ambos True pero son Falsos en este ejemplo porque el nombre de la columna es diferente de la clave del diccionario de entrada.

Devuelve True en la columna Sales si el valor está contenido en el valor del diccionario - [200, 400].

Códigos de ejemplo: DataFrame.isin() Con Series como entrada

Si el tipo de valor de entrada es Pandas Series, la función isin() comprueba si el elemento por columna es el mismo que el valor en el mismo índice de la entrada Series.

import pandas as pd

df = pd.DataFrame({"Sales": [100, 200], "Profit": [200, 400]})

valueSeries = pd.Series([200, 400])
print(valueSeries)

df = df.isin(valueSeries)
print(df)

Resultado:

0    200
1    400
dtype: int64
   Sales  Profit
0  False    True
1  False    True

Los elementos de la columna Profit son los mismos que los elementos de la entrada Series, por lo tanto, devuelve True para ambos elementos de esa columna.

Códigos de ejemplo: DataFrame.isin() Con DataFrame como entrada

Si el tipo de valor de entrada es Pandas DataFrame, la función isin() comprueba que cada elemento en el llamador DataFrame es el mismo que el elemento de la entrada DataFrame en la misma posición.

Devuelve True cuando los valores son idénticos, o False en el caso de falta de coincidencia.

import pandas as pd

df = pd.DataFrame({"Sales": [100, 200], "Profit": [200, 400]})
print(df)

valueDf = pd.DataFrame({"Sales": [100, 200], "Profit": [200, 300]})
print(valueDf)

df = df.isin(valueDf)
print(df)

Resultado:

   Sales  Profit
0    100     200
1    200     400
   Sales  Profit
0    100     200
1    200     300
   Sales  Profit
0   True    True
1   True   False

El valor en la posición (1, 1) devuelve False porque los valores son diferentes entre la llamada DataFrame y la entrada DataFrame.

Advertencia
La función isin() no sólo comprueba el elemento de valor, sino que también comprueba si el nombre de la columna es idéntico. Devuelve False si los nombres de las columnas son diferentes incluso si el valor es el mismo en estos dos DataFrames.
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - Pandas DataFrame