How to Use “OR” Operator in Pandas (With Examples)


You can use the | symbol as an “OR” operator in pandas.

For example, you can use the following basic syntax to filter for rows in a pandas DataFrame that satisfy condition 1 or condition 2:

df[(condition1) | (condition2)]

The following examples show how to use this “OR” operator in different scenarios.

Example 1: Use “OR” Operator to Filter Rows Based on Numeric Values in Pandas

Suppose we have the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print(df)

        team	points	assists	rebounds
0	A	25	5	11
1	A	12	7	8
2	B	15	7	10
3	B	14	9	6
4	B	19	12	6
5	B	23	9	5
6	C	25	9	9
7	C	29	4	12

We can use the following syntax to filter for rows in the DataFrame where the value in the points column is greater than 20 or the value in the assists column is equal to 9:

#filter rows where points > 20 or assists = 9
df[(df.points > 20) | (df.assists == 9)]

        team	points	assists	rebounds
0	A	25	5	11
3	B	14	9	6
5	B	23	9	5
6	C	25	9	9
7	C	29	4	12

The only rows returned are the ones where the points value is greater than 20 or the assists value is equal to 9.

Example 2: Use “OR” Operator to Filter Rows Based on String Values in Pandas

Suppose we have the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   'position': ['G', 'G', 'F', 'F', 'C', 'F', 'C', 'C'],
                   'conference': ['W', 'W', 'W', 'W', 'E', 'E', 'E', 'E'],
                   'points': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print(df)

  team position conference  points
0    A        G          W      11
1    B        G          W       8
2    C        F          W      10
3    D        F          W       6
4    E        C          E       6
5    F        F          E       5
6    G        C          E       9
7    H        C          E      12

We can use the following syntax to filter for rows in the DataFrame where the value in the position column is equal to G or the value in the position column is equal to F or the value in the team column is equal to H:

#filter rows based on string values
df[(df.team == 'H') | (df.position == 'G') | (df.position == 'F')]

     team position conference points
0	A	 G	    W	  11
1	B	 G	    W	   8
2	C	 F	    W	  10
3	D	 F	    W	   6
5	F	 F	    E	   5
7	H	 C	    E	  12

The only rows returned are the ones that meet at least one of the three conditions that we specified.

Additional Resources

The following tutorials explain how to perform other common operations in pandas:

How to Filter a Pandas DataFrame by Column Values
How to Filter Pandas DataFrame Rows by Date
How to Filter a Pandas DataFrame on Multiple Conditions

Leave a Reply

Your email address will not be published. Required fields are marked *