The simplest way to filter a pandas DataFrame by column values is to use the query function.

This tutorial provides several examples of how to use this function in practice with the following pandas DataFrame:

import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'C'], 'points': [25, 12, 15, 14, 19], 'assists': [5, 7, 7, 9, 12], 'rebounds': [11, 8, 10, 6, 6]}) #view DataFrame 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 C 19 12 6

**Example 1: Filter Based on One Column**

The following code shows how to filter the rows of the DataFrame based on a single value in the “points” column:

df.query('points == 15') team points assists rebounds 2 B 15 7 10

**Example 2: Filter Based on Multiple Columns**

The following code shows how to filter the rows of the DataFrame based on several values in different columns:

#return rows where points is equal to 15 or 14 df.query('points == 15 | points == 14') team points assists rebounds 2 B 15 7 10 3 B 14 9 6 #return rows where points is greater than 13 and rebounds is greater than 6 df.query('points > 13 & points > 6') team points assists rebounds 0 A 25 5 11 2 B 15 7 10

**Example 3: Filter Based on Values in a List**

The following code shows how to filter the rows of the DataFrame based on values in a list

#define list of values value_list = [12, 19, 25] #return rows where points is in the list of values df.query('points in @value_list') team points assists rebounds 0 A 25 5 11 1 A 12 7 8 4 C 19 12 6 #return rows where points isnotin the list of values df.query('points not in @value_list') team points assists rebounds 2 B 15 7 10 3 B 14 9 6

**Additional Resources**

How to Replace Values in Pandas

How to Drop Rows with NaN Values in Pandas

How to Drop Duplicate Rows in Pandas