Как удалить строки в DataFrame по условиям значений столбцов?
В этой статье мы увидим несколько примеров того, как удалить строки из фрейма данных на основе определенных условий, применяемых к столбцу.
Pandas provide data analysts a way to delete and filter data frame using dataframe.drop() method. We can use this method to drop such rows that do not satisfy the given conditions.
Let’s create a Pandas dataframe.
# import pandas libraryimport pandas as pd # dictionary with list object in valuesdetails = { "Name" : ["Ankit", "Aishwarya", "Shaurya", "Shivangi", "Priya", "Swapnil"], "Age" : [23, 21, 22, 21, 24, 25], "University" : ["BHU", "JNU", "DU", "BHU", "Geu", "Geu"],} # creating a Dataframe object df = pd.DataFrame(details, columns = ["Name", "Age", "University"], index = ["a", "b", "c", "d", "e", "f"]) df |
Выход:

Example 1 : Delete rows based on condition on a column.
# import pandas libraryimport pandas as pd # dictionary with list object in valuesdetails = { "Name" : ["Ankit", "Aishwarya", "Shaurya", "Shivangi", "Priya", "Swapnil"], "Age" : [23, 21, 22, 21, 24, 25], "University" : ["BHU", "JNU", "DU", "BHU", "Geu", "Geu"],} # creating a Dataframe object df = pd.DataFrame(details, columns = ["Name", "Age", "University"], index = ["a", "b", "c", "d", "e", "f"]) # get names of indexes for which# column Age has value 21index_names = df[ df["Age"] == 21 ].index # drop these row indexes# from dataFramedf.drop(index_names, inplace = True) df |
Выход :

Example 2 : Delete rows based on multiple conditions on a column.
# import pandas libraryimport pandas as pd # dictionary with list object in valuesdetails = { "Name" : ["Ankit", "Aishwarya", "Shaurya", "Shivangi", "Priya", "Swapnil"], "Age" : [23, 21, 22, 21, 24, 25], "University" : ["BHU", "JNU", "DU", "BHU", "Geu", "Geu"],} # creating a Dataframe object df = pd.DataFrame(details, columns = ["Name", "Age", "University"], index = ["a", "b", "c", "d", "e", "f"]) # get names of indexes for which column Age has value >= 21# and <= 23index_names = df[ (df["Age"] >= 21) & (df["Age"] <= 23)].index # drop these given row# indexes from dataFramedf.drop(index_names, inplace = True) df |
Выход :

Example 3 : Delete rows based on multiple conditions on different columns.
# import pandas libraryimport pandas as pd # dictionary with list object in valuesdetails = { "Name" : ["Ankit", "Aishwarya", "Shaurya", "Shivangi", "Priya", "Swapnil"], "Age" : [23, 21, 22, 21, 24, 25], "University" : ["BHU", "JNU", "DU", "BHU", "Geu", "Geu"],} # creating a Dataframe object df = pd.DataFrame(details, columns = ["Name", "Age", "University"], index = ["a", "b", "c", "d", "e", "f"]) # get names of indexes for which# column Age has value >= 21# and column University is BHUindex_names = df[ (df["Age"] >= 21) & (df["University"] == "BHU")].index # drop these given row# indexes from dataFramedf.drop(index_names, inplace = True) df |
Выход :

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.