现在的位置: 首页 > 建站运维教程 > 正文

pandas删除指定行(三种方法来实现)

2023年01月17日 建站运维教程 ⁄ 共 2673字 ⁄ 字号 暂无评论

本文我们将讨论如何在Pandas中删除包含特定值的行。丢弃行意味着从数据框架中移除数值,我们可以通过使用条件或关系运算符丢弃特定的数值。

方法1:通过使用操作符删除特定值

我们可以使用column_name函数和操作符来删除特定的值。

语法 : dataframe[dataframe.column_name operator value]

其中,

  • dataframe是输入数据帧
  • column_name是要删除的那一列的值
  • operator 是关系操作符
  • value 是指要从特定列中删除的特定值

通过使用不同的运算符来删除列

# import pandas module
import pandas as pd
  
# create dataframe with 4 columns
data = pd.DataFrame({
  
    "name": ['sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya'],
    "subjects": ['java', 'java', 'java', 'python',
                 'python', 'python', 'html/php', 'html/php',
                 'html/php', 'php/js', 'php/js', 'php/js'],
    "marks": [98, 79, 89, 97, 82, 98, 90,
              87, 78, 89, 93, 94]
})
  
# display
print(data)
  
print("---------------")
  
# drop rows where value is 98
# by using not equal operator
print(data[data.marks != 98])
  
print("---------------")

输出:

20221013080242-1

方法2:删除列表中包含数值的行

通过使用这种方法,我们可以删除列表中存在的多个值,我们正在使用isin()操作符。这个操作符用于检查给定的值是否存在于列表中。

语法: dataframe[dataframe.column_name.isin(list_of_values) == False]

其中,

  • dataframe 是输入数据框架
  • column_name是要删除这一列的值
  • list_of_values是要删除的具体数值
# import pandas module
import pandas as pd
  
# create dataframe with 4 columns
data = pd.DataFrame({
  
    "name": ['sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya', 
             'sravan', 'jyothika', 'harsha', 'ramya'],
    "subjects": ['java', 'java', 'java', 'python', 
                 'python', 'python', 'html/php', 
                 'html/php', 'html/php', 'php/js', 
                 'php/js', 'php/js'],
    "marks": [98, 79, 89, 97, 82, 98, 90, 87,
              78, 89, 93, 94]
})
  
# consider the list
list1 = [98, 82, 79]
  
# drop rows from above list
print(data[data.marks.isin(list1) == False])
  
print("---------------")
  
list2 = ['sravan', 'jyothika']
# drop rows from above list
print(data[data.name.isin(list2) == False])

输出:

20221013080242-2

方法3:删除在多列中包含特定值的行

我们可以通过使用关系运算符从多个列中删除特定的值。

语法 : dataframe[(dataframe.column_name operator value ) relational_operator (dataframe.column_name operator value )]

其中,

  • dataframe 是输入数据框架
  • column_name 是列
  • operator 是关系运算符
# import pandas module
import pandas as pd
  
# create dataframe with 4 columns
data = pd.DataFrame({
  
    "name": ['sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya',
             'sravan', 'jyothika', 'harsha', 'ramya'],
    "subjects": ['java', 'java', 'java', 'python',
                 'python', 'python', 'html/php', 
                 'html/php', 'html/php', 'php/js', 
                 'php/js', 'php/js'],
    "marks": [98, 79, 89, 97, 82, 98, 90,
              87, 78, 89, 93, 94]
})
  
# drop specific values
# where marks is 98 and name is sravan
print(data[(data.marks != 98) & (data.name != 'sravan')])
  
print("------------------")
  
# drop specific values
# where marks is 98 or name is sravan
print(data[(data.marks != 98) | (data.name != 'sravan')])

输出:

20221013080242-3

给我留言

您必须 [ 登录 ] 才能发表留言!