从 Pandas DataFrame 中删除行列表


Python 中的 pandas 库广泛用于以表格数据结构的形式表示数据。数据集被组织成一个由行和列组成的二维矩阵。Pandas 库提供了许多函数,可以帮助程序员通过提供有价值的数学见解来分析数据集。

表格数据结构称为数据帧,可以使用 pandas 的 DataFrame() 函数生成。在本文中,我们将执行一个简单的操作,即从 pandas 数据帧中删除/丢弃多行。

首先,我们必须准备一个数据集,然后使用 pandas 的“DataFrame()”函数生成数据帧。让我们从这里开始 -

准备数据集

来自传递的数据集的数据将以行和列的形式排列。

  • 在这里,我们将 pandas 库导入为“pd”。我们使用列表字典创建了数据集。

  • 每个键代表一个学生,该学生与表示在不同科目中获得的分数的值列表相关联。

  • 在此之后,我们使用 DataFrame() 函数生成了一个数据帧。我们没有指定列名,但学生的姓名会自动获取此数据帧的列位置。最重要的一步是数据帧索引的标记。我们通过传递一个包含不同科目的值的列表来指定行名。

示例

import pandas as pd
dataset = {"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],}
dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"])
print(dataframe)

输出

             Aman  Raj  Saloni
Physics        98   78     82
Chemistry      92   62     52
Maths          88   90     95
English        90   71     98
Biology        91   45     80

通过索引值删除行

为了删除一行,我们将使用 pandas 的“drop()”方法。这是从数据帧中删除行的有效且简单的方法。以下是此方法的语法 -

dataframe.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

我们不需要所有参数来启动“drop”操作(大多数默认值就足够了)。有两种删除行的方法:-

我们将指定需要删除的每一行的索引值。

示例

以下是此方法的实现。这里,

  • 在创建数据帧后,我们使用 drop() 方法从数据帧中删除第 3 行和第 4 行。

  • 我们选择了存储在“dataframe”变量中的原始数据帧,并使用“dataframe.index[[]]”锁定要删除的相应行的索引值。

  • 将创建一个新的数据帧,其中包含剩余的行。

import pandas as pd
dataset = {"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],}
dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"])
print(dataframe)
Drop_dataframe = dataframe.drop(dataframe.index[[2, 3]])
print("After dropping 3rd and 4th row")
print(Drop_dataframe)

输出

           Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Maths        88   90      95
English      90   71      98
Biology      91   45      80
After dropping 3rd and 4th row
           Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Biology      91   45      80

通过标签或行名删除行

在这种技术中,我们使用要从数据帧中删除的行(标签)的确切名称。我们将再次使用 drop() 方法来执行此技术。现在,

  • 我们使用相同的 drop() 方法从数据帧中删除第 3 行和第 4 行,但这次我们使用了在构建数据帧时标记的行名。

  • 将创建一个新的数据帧,原始数据帧保持不变。

示例

import pandas as pd
dataset = {"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],}
dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"])
print(dataframe)
Drop_dataframe = dataframe.drop(["Maths", "English"])
print("After dropping 3rd and 4th row")
print(Drop_dataframe)

输出

           Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Maths        88   90      95
English      90   71      98
Biology      91   45      80
After dropping 3rd and 4th row
           Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Biology      91   45      80

如果我们不想创建另一个数据帧,我们还可以包含“inplace”参数。此参数可以通过对其进行更改来修改当前数据帧。此参数的默认值为“False”。我们将把 inplace 参数的值设置为“True”。

使用索引切片

我们还可以使用索引切片删除行列表。以下是如何操作的示例,

  • 在这里,我们切片了索引并创建了一个用于删除行的范围。

  • 我们打印了原始数据帧,然后使用“dataframe.index[2:4]”方法设置从 2 到 3 的范围,并使用“dataframe.drop()”方法删除这些行。

  • 最后,将创建一个新的数据帧,其中包含剩余的行。

示例

import pandas as pd
dataset = {"Aman":[98, 92, 88, 90, 91], "Raj":[78, 62, 90, 71, 45], "Saloni":[82, 52, 95, 98, 80],}
dataframe = pd.DataFrame(dataset,index=["Physics", "Chemistry", "Maths", "English", "Biology"])
print(dataframe)
drop_dataframe = dataframe.drop(dataframe.index[2:4])
print("After dropping 3rd and 4th row")
print(drop_dataframe)

输出

            Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Maths        88   90      95
English      90   71      98
Biology      91   45      80
After dropping 3rd and 4th row
             Aman  Raj  Saloni
Physics      98   78      82
Chemistry    92   62      52
Biology      91   45      80

结论

在本文中,我们介绍了 pandas 数据帧的基础知识。我们了解了从数据帧中删除多行的不同方法。我们讨论了指定要删除的行(即通过“索引值”和“行名”)的不同方法。最后,我们讨论了一种简单的索引切片方法。

更新于: 2023年5月5日

355 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.