20.7 C
London
Monday, June 2, 2025
HomePandas in PythonDataFrame Functions in PythonPandas: Drop Rows Based on Multiple Conditions

Pandas: Drop Rows Based on Multiple Conditions

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

You can use the following methods to drop rows based on multiple conditions in a pandas DataFrame:

Method 1: Drop Rows that Meet One of Several Conditions

df = df.loc[~((df['col1'] == 'A') | (df['col2'] > 6))]

This particular example will drop any rows where the value in col1 is equal to A or the value in col2 is greater than 6.

Method 2: Drop Rows that Meet Several Conditions

df = df.loc[~((df['col1'] == 'A') & (df['col2'] > 6))] 

This particular example will drop any rows where the value in col1 is equal to A and the value in col2 is greater than 6.

The following examples show how to use each method in practice with the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'pos': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   'assists': [5, 7, 7, 9, 12, 9, 3, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

	team	pos	assists	rebounds
0	A	G	5	11
1	A	G	7	8
2	A	F	7	10
3	A	F	9	6
4	B	G	12	6
5	B	G	9	5
6	B	F	3	9
7	B	F	4	12

Example 1: Drop Rows that Meet One of Several Conditions

The following code shows how to drop rows in the DataFrame where the value in the team column is equal to A or the value in the assists column is greater than 6:

#drop rows where value in team column == 'A' or value in assists column > 6
df = df.loc[~((df['team'] == 'A') | (df['assists'] > 6))]

#view updated DataFrame
print(df)

  team pos  assists  rebounds
6    B   F        3         9
7    B   F        4        12

Notice that any rows where the team column was equal to A or the assists column was greater than 6 have been dropped.

For this particular DataFrame, six of the rows were dropped.

Note: The | symbol represents “OR” logic in pandas.

Example 2: Drop Rows that Meet Several Conditions

The following code shows how to drop rows in the DataFrame where the value in the team column is equal to A and the value in the assists column is greater than 6:

#drop rows where value in team column == 'A' and value in assists column > 6
df = df.loc[~((df['team'] == 'A') & (df['assists'] > 6))]

#view updated DataFrame
print(df)

  team pos  assists  rebounds
0    A   G        5        11
4    B   G       12         6
5    B   G        9         5
6    B   F        3         9
7    B   F        4        12

Notice that any rows where the team column was equal to A and the assists column was greater than 6 have been dropped.

For this particular DataFrame, three of the rows were dropped.

Note: Th & symbol represents “AND” logic in pandas.

Additional Resources

The following tutorials explain how to perform other common operations in pandas:

How to Drop Rows that Contain a Specific Value in Pandas
How to Drop Rows that Contain a Specific String in Pandas
How to Drop Rows by Index in Pandas

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories