Pandas 按标签名称或索引位置删除DataFrame中的列
pandas数据帧是一个二维数据结构,由一系列实体组成。它在数学数据分析中非常有用。数据以表格方式排列,每一行都表现为数据的一个实例。
Pandas数据帧很特别,因为它具有许多功能,使其成为一个非常强大的编程资产。数据帧中的每一列代表一个信息系列,具有标签。在本文中,我们将对这些列进行操作,并讨论在pandas数据帧中删除列的各种方法。
可以通过指定列名或使用它们的索引值来删除单个或多个列。我们将了解这两种方法,但首先我们必须准备一个数据集并生成一个数据帧。
创建数据帧
在创建数据帧时,我们可以为表格指定列名和行名。此过程很重要,因为它指定了“标签名称”和“索引值”。
在这里,我们将pandas库导入为“pd”,然后使用列表字典传递数据集。每个键代表一个列数据,与之关联的值以列表形式传递。我们使用pandas的“DataFrame()”函数创建数据帧。我们使用“index”参数将行标签分配给数据帧。现在让我们使用列名删除列。
示例
import pandas as pd
dataset = {"Employee ID":["CIR45", "CIR12", "CIR18", "CIR50", "CIR28"], "Age":[25, 28, 27, 26, 25], "Salary":[200000, 250000, 180000, 300000, 280000], "Role":["Junior Developer", "Analyst", "Programmer", "Senior Developer", "HR"]}
dataframe = pd.DataFrame(dataset, index=["Nimesh", "Arjun", "Mohan", "Ritesh", "Raghav"])
print(dataframe)
输出
Employee ID Age Salary Role
Nimesh CIR45 25 200000 Junior Developer
Arjun CIR12 28 250000 Analyst
Mohan CIR18 27 180000 Programmer
Ritesh CIR50 26 300000 Senior Developer
Raghav CIR28 25 280000 HR
使用列名和drop()方法
在生成数据框后,我们使用“ dataframe.drop ”方法从数据框中删除“ Salary ”和“ Role ”列。我们将这些列名放入一个列表中。
我们将“ axis ”的值指定为1,因为我们是在操作列轴。最后,我们将这个新的数据框存储在变量“ colDrop ”中并打印出来。
示例
import pandas as pd
dataset = {"Employee ID":["CIR45", "CIR12", "CIR18", "CIR50", "CIR28"], "Age":[25, 28, 27, 26, 25], "Salary":[200000, 250000, 180000, 300000, 280000], "Role":["Junior Developer", "Analyst", "Programmer", "Senior Developer", "HR"]}
dataframe = pd.DataFrame(dataset, index=["Nimesh", "Arjun", "Mohan", "Ritesh", "Raghav"])
print(dataframe)
colDrop = dataframe.drop(["Role", "Salary"], axis=1)
print("After dropping the Role and salary column:")
print(colDrop)
输出
Employee ID Age Salary Role
Nimesh CIR45 25 200000 Junior Developer
Arjun CIR12 28 250000 Analyst
Mohan CIR18 27 180000 Programmer
Ritesh CIR50 26 300000 Senior Developer
Raghav CIR28 25 280000 HR
After dropping the Role and salary column:
Employee ID Age
Nimesh CIR45 25
Arjun CIR12 28
Mohan CIR18 27
Ritesh CIR50 26
Raghav CIR28 25
使用索引值和drop()方法
我们可以使用索引位置锁定要删除的列。
示例
在这个示例中,我们简单地使用“ dataframe.columns ”方法和“dataframe.drop()”来指定要删除的列的索引位置。我们传递了“[[2,3]]”参数来删除“Salary”和“role”列。
现在我们已经讨论了删除列的两种基本方法,让我们来讨论一些扩展概念。
colDrop = dataframe.drop(dataframe.columns[[2, 3]], axis=1)
print("After dropping salary and role: -")
print(colDrop)
输出
After dropping salary and role: -
Employee ID Age
Nimesh CIR45 25
Arjun CIR12 28
Mohan CIR18 27
Ritesh CIR50 26
Raghav CIR28 25
从数据框中删除一系列列
在上述讨论的示例中,我们仅删除了特定的列(Salary和Role),但是众所周知,pandas为程序员提供了许多便利设施,因此我们可以使用它来创建要删除的一系列列。让我们实现这个逻辑。
使用iloc()函数
在生成数据框后,我们使用“ iloc()函数 ”选择一系列列并将其从数据框中删除。 “iloc()”函数接受行和列的索引范围。行的范围设置为”[0:0]”,列的范围设置为”[1:4]”。最后,我们使用”dataframe.drop()”方法删除这些列。
示例
import pandas as pd
dataset = {"Employee ID":["CIR45", "CIR12", "CIR18", "CIR50", "CIR28"], "Age":[25, 28, 27, 26, 25], "Salary":[200000, 250000, 180000, 300000, 280000], "Role":["Junior Developer", "Analyst", "Programmer", "Senior Developer", "HR"]}
dataframe = pd.DataFrame(dataset, index=["Nimesh", "Arjun", "Mohan", "Ritesh", "Raghav"])
print(dataframe)
colDrop = dataframe.drop(dataframe.iloc[0:0, 1:4],axis=1)
print("Dropping a range of columns from 'Age' to 'Role' using iloc() function")
print(colDrop)
输出
Employee ID Age Salary Role
Nimesh CIR45 25 200000 Junior Developer
Arjun CIR12 28 250000 Analyst
Mohan CIR18 27 180000 Programmer
Ritesh CIR50 26 300000 Senior Developer
Raghav CIR28 25 280000 HR
Dropping a range of columns from 'Age' to 'Role' using iloc() function
Employee ID
Nimesh CIR45
Arjun CIR12
Mohan CIR18
Ritesh CIR50
Raghav CIR28
使用loc()函数
如果我们想要使用标签而不是索引来创建一个范围,我们使用“ loc()函数 ”。
示例
我们使用“ loc() ”函数创建了一个范围。与iloc()不同,它包含最后一列。loc()函数通过将列名作为参数选择列。最后,我们打印了剩余列的新数据框。
colDrop = dataframe.drop(dataframe.loc[:, "Age": "Role"].columns, axis=1)
print("Dropping a range of columns from Age to Role using loc() fucntion")
print(colDrop)
输出
Employee ID Age Salary Role
Nimesh CIR45 25 200000 Junior Developer
Arjun CIR12 28 250000 Analyst
Mohan CIR18 27 180000 Programmer
Ritesh CIR50 26 300000 Senior Developer
Raghav CIR28 25 280000 HR
Dropping a range of columns from Age to Role using loc() fucntion
Employee ID
Nimesh CIR45
Arjun CIR12
Mohan CIR18
Ritesh CIR50
Raghav CIR28
结论
本文侧重于从pandas数据框中删除列的简单操作。我们讨论了两种技术,即“按标签名称删除”和“按索引值删除”。我们还使用了“loc()”和“iloc()”函数,并确认了它们在pandas数据框上的应用。