pandas.DataFrame.isin — pandas 3.0.0.dev0+2098.g9c5b9ee823 documentation (original) (raw)
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. Ifvalues 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.
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