从 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 数据帧的基础知识。我们了解了从数据帧中删除多行的不同方法。我们讨论了指定要删除的行(即通过“索引值”和“行名”)的不同方法。最后,我们讨论了一种简单的索引切片方法。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP