I have a two dimensional (or more) pandas DataFrame like this:
>>> import pandas as pd
>>> df = pd.DataFrame([[0,1],[2,3],[4,5]], columns=['A', 'B'])
>>> df
A B
0 0 1
1 2 3
2 4 5
Now suppose I have a numpy array like np.array([2,3])
and want to check if there is any row in df
that matches with the contents of my array. Here the answer should obviously true but eg. np.array([1,2])
should return false as there is no row with both 1 in column A and 2 in column B.
Sure this is easy but don't see it right now.
If you also want to return the index where the matches occurred:
Turns out it is really easy, the following does the job here:
Maybe somebody comes up with a better solution which allows directly passing in the array and the list of columns to match.
Note that the parenthesis around
df['A'] == 2
are not optional since the&
operator binds just as strong as the==
operator.an easier way is: