Pandas 从DataFrame中删除多行

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Pandas 精选笔记