从 Pandas DataFrame 中删除行列表

pythonpandasserver side programmingprogramming

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 数据框的基础知识。我们了解了从数据框中删除多行的不同方法。我们讨论了指定要删除的行的不同方法,即通过"索引值"和"行名称"。最后,我们讨论了一种简单的索引切片方法。


相关文章