Pandas DataFrame isin() - 4 Examples
Pandas DataFrame isin()
DataFrame.isin(values)
checks whether each element in the DataFrame is contained in values.
Syntax
DataFrame.isin(values)
where values
could be Iterable, DataFrame, Series or dict.
isin() returns DataFrame of booleans showing whether each element in the DataFrame is contained in values.
Examples
1. DataFrame.isin() with iterable
In this example, we will apply DataFrame.isin() with a range i.e., Iterable. The values of the DataFrame that match the values in the range output True while other output False in the respective index of the DataFrame.
Python Program
import pandas as pd
#initialize dataframe
df = pd.DataFrame({'a': [2, 4], 'b': [2, 0]})
#check if the values of df are in the range(1,6)
out = df.isin(range(1,6))
print('DataFrame\n-----------\n',df)
print('\nDataFrame.isin(range(1,6))\n-----------\n',out)
Output
DataFrame
-----------
a b
0 2 2
1 4 0
DataFrame.isin(range(1,6))
-----------
a b
0 True True
1 True False
Clearly, 2,4
are in the range(1,6)
, but 0
is not. Hence for the position of element 0
, there is False
returned by DataFrame.isin().
2. DataFrame.isin() with Series
In this example, we will apply DataFrame.isin() with a Series. The values of the DataFrame that match the values along with the index return True while other return False for the respective index of the DataFrame.
Python Program
import pandas as pd
#initialize dataframe
df = pd.DataFrame({'a': [2, 4], 'b': [2, 0]})
#series
s = pd.Series([2, 0])
#check if the values of df are in the range(1,6)
out = df.isin(s)
print('DataFrame\n-----------\n',df)
print('\nSeries\n-----------\n',s)
print('\nDataFrame.isin(series)\n-----------\n',out)
Output
D:\>python example.py
DataFrame
-----------
a b
0 2 2
1 4 0
Series
-----------
0 2
1 0
dtype: int64
DataFrame.isin(series)
-----------
a b
0 True True
1 False True
Clearly, at the index 0
,2,2
of DataFrame match the 2
of Series, but at index 1
the first element 4
did not match.
3. DataFrame.isin() with DataFrame
In this example, we will apply DataFrame.isin() with another DataFrame. The values of the DataFrame that match the values along with the index return True while other return False for the respective index of the DataFrame.
Python Program
import pandas as pd
#initialize dataframe
df = pd.DataFrame({'a': [2, 4], 'b': [2, 0]}, index=['i1', 'i2'])
#series
df1 = pd.DataFrame({'a': [2, 4], 'b': [2, 3]}, index=['i1', 'i3'])
#check if the values of df are in the range(1,6)
out = df.isin(df1)
print('DataFrame\n-----------\n',df)
print('\nDataFrame df1\n-----------\n',df1)
print('\nDataFrame.isin(df1)\n-----------\n',out)
Output
DataFrame
-----------
a b
i1 2 2
i2 4 0
DataFrame df1
-----------
a b
i1 2 2
i3 4 3
DataFrame.isin(df1)
-----------
a b
i1 True True
i2 False False
index i2
did not match with that of in df1
. Hence, that row is returned all false values.
4. DataFrame.isin() with Dictionary
In this example, we will apply DataFrame.isin() with a dictionary. The keys of dictionary are considered as columns and the corresponding values are considered as the column values. isin(dict) returns True for those values where keys of dict matches with the column name and values of dictionary matches with the column values of DataFrame.
Python Program
import pandas as pd
#initialize dataframe
df = pd.DataFrame({'a': [2, 4], 'b': [2, 0]}, index=['i1', 'i2'])
#dictionary
dict = {'a': [2, 4]}
#DataFrame.isin(dict)
out = df.isin(dict)
print('DataFrame\n-----------\n',df)
print('\nDictionary\n-----------\n',dict)
print('\nDataFrame.isin(dict)\n-----------\n',out)
Output
DataFrame
-----------
a b
i1 2 2
i2 4 0
Dictionary
-----------
{'a': [2, 4]}
DataFrame.isin(dict)
-----------
a b
i1 True False
i2 True False
index i2
did not match with that of in df1
. Hence, that row is returned all false values.
Summary
We have learnt how the usage of DataFrame.isin() with the argument: Iterable, Series, DataFrame or Dictionary.