How to Delete a Row Based on a Column Value in a Pandas DataFrame
Let’s see how we can delete a row based on a column value in a Pandas DataFrame.
1. Delete rows based on single column value
Suppose we have a DataFrame
df, and we want to delete a row if the value of the column
col in that row is equal to
We have many different ways to drop a row based on a value. In this example, we’ll be dropped rows whose
col value is
df = df[df.col != 0] df = df[df.col.ne(0)] df = df[~df.col.eq(0)] df = df.query('col != 0') df = df.drop(df[df['col'] == 0].index) df.drop(df.loc[df['col'] == 0].index, inplace=True) df.drop(df.index[df['col'] == 0], inplace = True)
We can also drop rows based on multiple values for a single column.
Here, we’ll drop a row if
col is equal to
df = df[~df['col'].isin([0, 1, 2])]
2. Delete rows based on multiple columns' values
Let’s say our
df DataFrame now contains
col2, and we want to delete a row if
col1 == 0 and
col2 == 999.
df = df[(df.col1 != 0) & (df.col2 != 999)]