Pandas ‘between’ filter used to filter the values within in a specified range.
Let’s experiment with below data set.
Name Age City Gender Rating 0 Krishna 34 Bangalore Male 81 1 Sailu 35 Hyderabad Female 76 2 Joel 29 Hyderabad Male 67 3 Chamu 35 Chennai Female 100 4 Jitendra 52 Bangalore Male 87 5 Raj 34 Chennai Male 89
Let’s try to get the Persons details whose Rating is in between 81 and 89, where 81 and 89 are inclusive.
We can solve the above problem using Logical & operator.
rating_greater_or_equal_81 = (df['Rating'] >= 81)
rating_less_than_or_equal_81 = (df['Rating'] <= 89)
final_condition = (rating_greater_or_equal_81 & rating_less_than_or_equal_81)
result = df[final_condition]
As you see above snippet, we defined to Boolean series ‘rating_greater_or_equal_81’, ‘rating_less_than_or_equal_81’ and applied logical & condition to that series.
We can achieve the same result using between operator like below.
final_condition = df['Rating'].between(81, 89)
result = df[final_condition]
Find the below working application.
between_filter_demo.py
import pandas as pd
# Create a sample DataFrame
data = {'Name': ['Krishna', 'Sailu', 'Joel', 'Chamu', 'Jitendra', "Raj"],
'Age': [34, 35, 29, 35, 52, 34],
'City': ['Bangalore', 'Hyderabad', 'Hyderabad', 'Chennai', 'Bangalore', 'Chennai'],
'Gender': ['Male', 'Female', 'Male', 'Female', 'Male', 'Male'],
'Rating': [81, 76, 67, 100, 87, 89]}
df = pd.DataFrame(data)
print('Original DataFrame')
print(df)
print('\nPersons Rating is in between 81 and 89 using & operator')
rating_greater_or_equal_81 = (df['Rating'] >= 81)
rating_less_than_or_equal_81 = (df['Rating'] <= 89)
final_condition = (rating_greater_or_equal_81 & rating_less_than_or_equal_81)
result = df[final_condition]
print(result)
print('\nPersons Percentage is in between 81 and 89 using between operator')
final_condition = df['Rating'].between(81, 89)
result = df[final_condition]
print(result)
Output
Original DataFrame Name Age City Gender Rating 0 Krishna 34 Bangalore Male 81 1 Sailu 35 Hyderabad Female 76 2 Joel 29 Hyderabad Male 67 3 Chamu 35 Chennai Female 100 4 Jitendra 52 Bangalore Male 87 5 Raj 34 Chennai Male 89 Persons Percentage is in between 81 and 89 using | operator Name Age City Gender Rating 0 Krishna 34 Bangalore Male 81 4 Jitendra 52 Bangalore Male 87 5 Raj 34 Chennai Male 89 Persons Percentage is in between 81 and 89 using between operator Name Age City Gender Rating 0 Krishna 34 Bangalore Male 81 4 Jitendra 52 Bangalore Male 87 5 Raj 34 Chennai Male 89
No comments:
Post a Comment