Как удалить строки в DataFrame по условиям значений столбцов?

Опубликовано: 27 Марта, 2022

В этой статье мы увидим несколько примеров того, как удалить строки из фрейма данных на основе определенных условий, применяемых к столбцу.

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 library
import pandas as pd
  
# dictionary with list object in values
details = {
    "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 library
import pandas as pd
  
# dictionary with list object in values
details = {
    "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
index_names = df[ df["Age"] == 21 ].index
  
# drop these row indexes
# from dataFrame
df.drop(index_names, inplace = True)
  
df

Выход :

Example 2 : Delete rows based on multiple conditions on a column.

# import pandas library
import pandas as pd
  
# dictionary with list object in values
details = {
    "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 <= 23
index_names = df[ (df["Age"] >= 21) & (df["Age"] <= 23)].index
  
# drop these given row
# indexes from dataFrame
df.drop(index_names, inplace = True)
  
df

Выход :

Example 3 : Delete rows based on multiple conditions on different columns.

# import pandas library
import pandas as pd
  
# dictionary with list object in values
details = {
    "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 BHU
index_names = df[ (df["Age"] >= 21) & (df["University"] == "BHU")].index
  
# drop these given row
# indexes from dataFrame
df.drop(index_names, inplace = True)
  
df

Выход :

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

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