{"id":3937,"date":"2021-04-27T19:34:42","date_gmt":"2021-04-27T14:04:42","guid":{"rendered":"https:\/\/python-programs.com\/?p=3937"},"modified":"2021-11-22T18:43:03","modified_gmt":"2021-11-22T13:13:03","slug":"python-pandas-how-to-drop-rows-in-dataframe-by-conditions-on-column-values","status":"publish","type":"post","link":"https:\/\/python-programs.com\/python-pandas-how-to-drop-rows-in-dataframe-by-conditions-on-column-values\/","title":{"rendered":"Python Pandas : How to Drop rows in DataFrame by conditions on column values"},"content":{"rendered":"

How to Drop rows in DataFrame by conditions on column values in Python ?<\/h2>\n

In this article we will discuss how we can delete rows in a dataframe by certain conditions on column values.<\/p>\n

DataFrame provides a member function drop()<\/code> which is used to drop specified labels from rows or columns in dataframe.<\/p>\n

DataFrame.drop(self, labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors=\u2019raise\u2019)<\/pre>\n

Let\u2019s try with an example:<\/p>\n

#Program :\r\n\r\nimport pandas as pd\r\n#list of tuples\r\ngame = [('riya',37,'delhi','cat','rose'),\r\n   ('anjali',28,'agra','dog','lily'),\r\n   ('tia',42,'jaipur','elephant','lotus'),\r\n   ('kapil',51,'patna','cow','tulip'),\r\n   ('raj',30,'banglore','lion','orchid')]\r\n\r\n#Create a dataframe object\r\ndf = pd.DataFrame(game, columns=['Name','Age','Place','Animal','Flower'], index=['a','b','c','d','e'])\r\nprint(df)\r\n<\/pre>\n
Output:\r\n \u00a0\u00a0\u00a0 Name\u00a0 Age\u00a0\u00a0\u00a0\u00a0 Place\u00a0\u00a0\u00a0    Animal\u00a0      Flower\r\na\u00a0\u00a0\u00a0 riya\u00a0\u00a0   37\u00a0\u00a0\u00a0\u00a0   delhi\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0     cat\u00a0\u00a0\u00a0          rose\r\nb\u00a0 anjali\u00a0\u00a0  28\u00a0\u00a0\u00a0\u00a0\u00a0  agra\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0     dog\u00a0\u00a0\u00a0          lily\r\nc\u00a0\u00a0\u00a0\u00a0 tia\u00a0\u00a0    42\u00a0\u00a0\u00a0    jaipur\u00a0    elephant\u00a0\u00a0      lotus\r\nd\u00a0\u00a0 kapil\u00a0\u00a0  51\u00a0\u00a0\u00a0\u00a0  patna\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0    cow\u00a0\u00a0         tulip\r\ne\u00a0\u00a0\u00a0\u00a0 raj\u00a0\u00a0    30\u00a0    banglore\u00a0\u00a0\u00a0\u00a0\u00a0 lion\u00a0         orchid<\/pre>\n

Delete rows based on condition on a column<\/strong><\/h3>\n

Let\u2019s try with an example by deleting a row:<\/p>\n

deleteRow = df[df['Place'] == 'patna'].index\r\ndf.drop(deleteRow, inplace=True)\r\nprint(df)<\/pre>\n
Output:\r\n Name\u00a0   Age\u00a0\u00a0\u00a0\u00a0 Place\u00a0\u00a0\u00a0   Animal\u00a0      Flower\r\na\u00a0\u00a0\u00a0 riya\u00a0\u00a0  37\u00a0\u00a0\u00a0\u00a0 delhi\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0     cat\u00a0\u00a0\u00a0         rose\r\nb\u00a0 anjali\u00a0\u00a0 28\u00a0\u00a0\u00a0\u00a0\u00a0 agra\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0    dog\u00a0\u00a0\u00a0         lily\r\nc\u00a0\u00a0\u00a0\u00a0 tia\u00a0\u00a0   42\u00a0\u00a0\u00a0   jaipur\u00a0    elephant\u00a0\u00a0    lotus\r\ne\u00a0\u00a0\u00a0\u00a0 raj\u00a0\u00a0   30\u00a0   banglore\u00a0\u00a0\u00a0\u00a0\u00a0 lion\u00a0        orchid<\/pre>\n

Here, we give the condition i.e<\/p>\n

df[‘Place’] == ‘patna’<\/p>\n

Internally if we will see it is giving series object with True and False.<\/p>\n

a\u00a0\u00a0 False\r\nb\u00a0\u00a0 False\r\nc\u00a0\u00a0 False\r\nd\u00a0\u00a0 True\r\ne\u00a0\u00a0 False<\/pre>\n

Name: Place, dtype: bool<\/p>\n

Delete rows based on multiple conditions on a column :<\/strong><\/h3>\n

Let\u2019s try with multiple conditions<\/p>\n

deleteRow = df[(df['Age'] >= 30) & (df['Age'] <= 40)].index\r\ndf.drop(deleteRow, inplace=True)\r\nprint(df)<\/pre>\n
Output:\r\n\u00a0\u00a0\u00a0 Name\u00a0 Age\u00a0\u00a0\u00a0\u00a0 Place\u00a0 \u00a0 \u00a0Animal\u00a0 \u00a0   Flower\r\nb\u00a0 anjali\u00a0\u00a0 28\u00a0\u00a0\u00a0\u00a0\u00a0  agra\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0  dog\u00a0\u00a0\u00a0       lily \r\nc\u00a0\u00a0\u00a0\u00a0 tia\u00a0\u00a0   42\u00a0\u00a0\u00a0    jaipur\u00a0   elephant\u00a0\u00a0  lotus<\/pre>\n

Here, we join two conditions i.e df[\u2018Age\u2019]>=30 and df[\u2018Age\u2019]<=40 by putting \u2019&\u2019 between two conditions.<\/p>\n

Want to expert in the python programming language? Exploring\u00a0Python Data Analysis using Pandas<\/a>\u00a0tutorial changes your knowledge from basic to advance level in python concepts.<\/p>\n

Read more Articles on Python Data Analysis Using Padas \u2013 Remove Contents from a Dataframe<\/strong><\/p>\n