Examples of how to filter dataframe rows using multiple conditions with OR in pandas:
Create a dataframe with pandas
Let's first create a dataframe with pandas using a dictionary:
import pandas as pdimport numpy as npdata= {'A':[-1,-2,3,4,5],'B':[6,-7,8,9,-10],'C':[11,12,13,14,15],}df = pd.DataFrame(data)
returns here
A B C0 -1 6 111 -2 -7 122 3 8 133 4 9 144 5 -10 15
Filter using one column
To filter a dataframe with a OR statement, a solution is to use the logical operator |
df[ (df['A'] < 0) | (df['A'] > 4) ]
returns here
A B C0 -1 6 111 -2 -7 124 5 -10 15
Filter using two different columns
Another example using two different columns
df[ (df['A'] < 0) | (df['B'] < 0) ]
returns
A B C0 -1 6 111 -2 -7 124 5 -10 15
More than two columns
Another example using more than two different columns
df[ (df['A'] < 0) | (df['B'] < 0) | (df['C'] >= 14) ]
returns
A B C0 -1 6 111 -2 -7 123 4 9 144 5 -10 15
Multiple conditions witn OR and AND
df[ (df['A'] < 0) | (df['B'] < 0) & (df['C'] == 11) ]
returns
A B C0 -1 6 111 -2 -7 12
Same as
df[ (df['A'] < 0) | ( (df['B'] < 0) & (df['C'] == 11) ) ]
returns
A B C0 -1 6 111 -2 -7 12
or
cond1 = (df['A'] < 0)cond2 = (df['B'] < 0) & (df['C'] == 11)df[ cond1 | cond2 ]
returns
A B C0 -1 6 111 -2 -7 12
