Pandas- Select rows from DataFrame based on condition
I think you need boolean indexing
:
df1 = df[(df['category'] == 'A') & (df['value'].between(10,20))]
print (df1)
category value
2 A 15
4 A 18
And then:
df2 = df[(df['category'] != 'A') & (df['value'].between(10,20))]
print (df2)
category value
1 B 10
Or:
df3 = df[df['category'] != 'A']
print (df3)
category value
1 B 10
3 B 28
EDIT: Join both conditions with |
for or
, dont forget add ()
to first conditions.
df1 = df[((df['category'] == 'A') & (df['value'].between(10,20))) |
(df['category'] != 'A')]
print (df1)
category value
1 B 10
2 A 15
3 B 28
4 A 18