Skip to main content
`Ctrl`+`K`

# pandas.DataFrame.isin

DataFrame.isin(values)

  Whether each element in the DataFrame is contained in values.

  Returns a DataFrame of the same shape with boolean values: True where the element is in the corresponding structure of `values`, False otherwise. `values` can be a list, dict, Series, or DataFrame; alignment rules depend on its type.

  Parameters:
    values iterable, 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.

  Notes

  `__iter__` is used (and not `__contains__`) to iterate over values when checking if it contains the elements in DataFrame.

  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