从Pandas DataFrame中删除一系列行
在Python中,使用pandas库代表数据以表格形式展示是广泛使用的。该数据集被排列成由行和列组成的2D矩阵。 pandas库提供了许多函数,可以通过提供有价值的数学见解来帮助程序员分析数据集。
表格数据结构称为数据帧,可以借助pandas DataFrame() 函数生成。在本文中,我们将执行一个简单的操作,即从Pandas数据帧中删除/删除多个行。
首先,我们必须准备数据集,然后借助pandas “DataFrame()” 函数生成数据帧。让我们开始吧。
更多Pandas相关文章,请阅读:Pandas 教程
准备数据集
从传递的数据集中获取的数据将以行和列的形式排列。
- 这里,我们将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("删除第3和第4行后")
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
去掉第三行和第四行后
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("去掉第三行和第四行后")
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
去掉第三行和第四行后
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("去掉第三行和第四行后")
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
去掉第三行和第四行后
Aman Raj Saloni
Physics 98 78 82
Chemistry 92 62 52
Biology 91 45 80
结论
在本文中,我们介绍了pandas数据框的基础知识。 我们理解了从数据框中删除多个行的不同方法。 我们讨论了指定要删除的行的不同方法,即通过“ 索引值 ”和“ 行名称 ”。 最后,我们讨论了一种简单的索引切片方法。
极客教程