w3resource

Pandas DataFrame: Select the rows, the score is between 15 and 20 (inclusive)


10. Selecting Rows Where Score is Between 15 and 20

Write a Pandas program to select the rows the score is between 15 and 20 (inclusive).

Sample DataFrame:
Sample Python dictionary data and list labels:
exam_data = {'name': ['Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'],
'score': [12.5, 9, 16.5, np.nan, 9, 20, 14.5, np.nan, 8, 19],
'attempts': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
'qualify': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

Sample Solution :

Python Code :

import pandas as pd
import numpy as np
exam_data  = {'name': ['Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'],
        'score': [12.5, 9, 16.5, np.nan, 9, 20, 14.5, np.nan, 8, 19],
        'attempts': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],
        'qualify': ['yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']

df = pd.DataFrame(exam_data , index=labels)
print("Rows where score between 15 and 20 (inclusive):")
print(df[df['score'].between(15, 20)])

Sample Output:

Rows where score between 15 and 20 (inclusive):                        
   attempts       name qualify  score                                  
c         2  Katherine     yes   16.5                                  
f         3    Michael     yes   20.0                                  
j         1      Jonas     yes   19.0                                

Explanation:

The above Pandas code first creates a dataframe ‘df’ from the dictionary ‘exam_data’ using the list labels as index. It then filters the rows of ‘df’ that have a 'score' value between 15 and 20 (inclusive) using the between() method of a Pandas series.

Finally print() function prints the resulting filtered dataframe.


For more Practice: Solve these Related Problems:

  • Write a Pandas program to select rows where the 'score' is between 15 and 20 inclusive and then sort these rows by 'name'.
  • Write a Pandas program to filter the DataFrame for rows with scores between 15 and 20 and then compute the average score of this subset.
  • Write a Pandas program to select rows with 'score' in the range 15 to 20 and then update the 'qualify' column based on this condition.
  • Write a Pandas program to extract rows where 'score' falls between 15 and 20 and then display only the 'score' and 'attempts' columns.

Go to:


Previous: Write a Pandas program to select the rows where the score is missing, i.e. is NaN.
Next: Write a Pandas program to select the rows where number of attempts in the examination is less than 2 and score greater than 15.

Python-Pandas Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.