pandas.DataFrame.isin#

DataFrame.isin(values)[source] #

Whether each element in the DataFrame is contained in values.

Parameters:
valuesiterable, Series, DataFrame or dict

The result will only be true at a location if all the labels match. If values is a Series, that’s the index. If values is a dict, the keys must be the column names, which must match. If values is a DataFrame, then both the index and column labels must match.

Returns:
DataFrame

DataFrame of booleans showing whether each element in the DataFrame is contained in values.

See also

DataFrame.eq

Equality test for DataFrame.

Series.isin

Equivalent method on Series.

Series.str.contains

Test if pattern or regex is contained within a string of a Series or Index.

Examples

>>> df = pd.DataFrame({'num_legs': [2, 4], 'num_wings': [2, 0]},
...  index=['falcon', 'dog'])
>>> df
 num_legs num_wings
falcon 2 2
dog 4 0

When values is a list check whether every value in the DataFrame is present in the list (which animals have 0 or 2 legs or wings)

>>> df.isin([0, 2])
 num_legs num_wings
falcon True True
dog False True

To check if values is not in the DataFrame, use the ~ operator:

>>> ~df.isin([0, 2])
 num_legs num_wings
falcon False False
dog True False

When values is a dict, we can pass values to check for each column separately:

>>> df.isin({'num_wings': [0, 3]})
 num_legs num_wings
falcon False False
dog False True

When values is a Series or DataFrame the index and column must match. Note that ‘falcon’ does not match based on the number of legs in other.

>>> other = pd.DataFrame({'num_legs': [8, 3], 'num_wings': [0, 2]},
...  index=['spider', 'falcon'])
>>> df.isin(other)
 num_legs num_wings
falcon False True
dog False False