Pandas DataFrame DataFrame.isin() Função

Jinku Hu 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.isin(valores)
  2. Códigos de exemplo: DataFrame.isin() Com itinerável como a entrada
  3. Códigos de exemplo: DataFrame.isin() Com Dicionário como entrada
  4. Códigos de exemplo: DataFrame.isin() Com a Series como entrada
  5. Códigos de exemplo: DataFrame.isin() Com DataFrame como a Entrada
Pandas DataFrame DataFrame.isin() Função

A função pandas.DataFrame.isin(values) verifica se cada elemento no DataFrame do chamador contém o valor especificado nos valores de entrada.

Sintaxe de pandas.DataFrame.isin(valores)

DataFrame.isin(values)

Parâmetros

values iterável - lista, túple, set, etc.
Dicionário,
Series
DataFrame

Retornar

Ele retorna um DataFrame de Booleans da mesma dimensão do chamador DataFrame indicando se cada elemento contém os valores de entrada.

Códigos de exemplo: DataFrame.isin() Com itinerável como a entrada

Quando a entrada é a iterable Python, a função Pandas DataFrame.isin verifica se cada valor na DataFrame contém algum valor na iterable.

import pandas as pd

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

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

O chamador DataFrame é

   Sales  Profit
0    100     200
1    200     400

Resultado:

   Sales  Profit
0  False    True
1   True    True

Aqui, 200 e 400 presentes na lista [200, 400], portanto, os valores no retorno DataFrame cujos valores originais são 200 e 400 são True. 100 não está na lista [200, 400], portanto, o valor em sua posição retorna False.

Códigos de exemplo: DataFrame.isin() Com Dicionário como entrada

Se o tipo de valor de entrada for Dicionário, a função isin() verifica não apenas os valores, mas também a chave. Ela retorna True somente quando o nome da coluna é o mesmo que chave e o valor da célula contém no valor do dicionário.

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

No primeiro exemplo, os valores das colunas Profit são ambos True, mas são False neste exemplo porque o nome da coluna é diferente da chave no dicionário de entrada.

Ela retorna True na coluna Sales se o valor estiver contido no valor do dicionário - [200, 400].

Códigos de exemplo: DataFrame.isin() Com a Series como entrada

Se o tipo de valor de entrada for Pandas Series, a função isin() verifica se o elemento por coluna é o mesmo que o valor no mesmo índice da 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

Os elementos da coluna Profit são os mesmos que os elementos da entrada Series element-wise, portanto, ela retorna True para ambos os elementos daquela coluna.

Códigos de exemplo: DataFrame.isin() Com DataFrame como a Entrada

Se o tipo de valor de entrada for Pandas DataFrame, a função isin() verifica cada elemento no chamador DataFrame é o mesmo que o elemento da entrada DataFrame na mesma posição.

Ela retorna True quando os valores são idênticos, ou False em caso de descasamento.

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

O valor na posição (1, 1) retorna False porque os valores são diferentes entre o DataFrame de chamada e o DataFrame de entrada.

Advertência
A função isin() verifica não apenas o valor elementar, mas também verifica se o nome da coluna é idêntico. Ela retorna False se os nomes das colunas forem diferentes mesmo que o valor seja o mesmo nestes dois 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

Artigo relacionado - Pandas DataFrame