Select rows from a Python Pandas DataFrame based on column values

David Y.
jump to solution

The Problem

How can I select rows from a DataFrame in Python Pandas based on column values? In other words, what is the DataFrame equivalent of a SELECT WHERE statement in SQL?

The Solution

This can be achieved using the DataFrame’s loc property.

To select rows with a specified column value:

my_value = 3
results = my_dataframe.loc[my_dataframe["column_name"] == my_value]

To select rows that do not match a specified column value:

my_value = 3
results = my_dataframe.loc[my_dataframe["column_name"] != my_value]

To select rows with a column value that matches one of a list of values:

my_list = [1, 2, 3]
results = my_dataframe.loc[my_dataframe["column_name"].isin(my_list)]

To select rows with a column value that falls in a range:

lower_limit = 1
upper_limit = 3
my_dataframe.loc[(my_dataframe["column_name"] >= lower_limit) & (my_dataframe["column_name"] <= upper_limit)]

Further Reading

If you’re looking to get a deeper understanding of how Python application monitoring works, take a look at the following articles:

Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

Sentry