Pandas 将指定列提取到新的DataFrame中作为副本
在本文中,我们将介绍如何使用Pandas将指定的列提取并创建一个新的DataFrame,使得我们可以随意修改这个新DataFrame,而原始的DataFrame不会受到影响。
阅读更多:Pandas 教程
1. 提取单个列
我们可以使用Pandas的DataFrame
对象中的[]
操作符来提取单个列。例如,让我们考虑一个具有以下数据列的DataFrame:
Name | Age | Country |
---|---|---|
John | 25 | USA |
Sally | 32 | Canada |
Tim | 18 | UK |
要提取“Age”列并将其存储在另一个DataFrame中,我们可以执行以下代码:
执行结果将是一个只包含“Age”列的新DataFrame,即age_df
:
Age |
---|
25 |
32 |
18 |
请注意,我们必须使用copy()
方法来创建新的DataFrame副本,以免更改原始DataFrame。
2. 提取多个列
要提取多个列,我们可以使用与提取单个列相同的[]
操作符,并将列名列表作为参数传递。例如,让我们考虑以下DataFrame,其中包含以下数据列:
Name | Age | Country | Gender |
---|---|---|---|
John | 25 | USA | M |
Sally | 32 | Canada | F |
Tim | 18 | UK | M |
要提取“Age”和“Gender”列并将它们存储在另一个DataFrame中,我们可以执行以下代码:
结果将是一个只包含“Age”和“Gender”列的新DataFrame,即age_gender_df
:
Age | Gender |
---|---|
25 | M |
32 | F |
18 | M |
3. 提取连续的列
要提取连续的列,我们可以使用loc
或iloc
属性。例如,让我们考虑以下DataFrame,其中包含以下数据列:
Name | Age | Country | Gender |
---|---|---|---|
John | 25 | USA | M |
Sally | 32 | Canada | F |
Tim | 18 | UK | M |
要提取从“Age”列到“Gender”列之间的所有列,我们可以使用以下代码:
结果将是一个只包含从“Age”到“Gender”(包括这两列)的新DataFrame,即age_to_gender_df
:
Age | Country | Gender |
---|---|---|
25 | USA | M |
32 | Canada | F |
18 | UK | M |
请注意,在使用loc
方法时,我们必须指定所有我们想要包含在新DataFrame中的列名称范围,并使用:
来表示所有行。
4. 取消副本要求
如果我们只想在原始DataFrame中操作特定列的值,就不需要创建新的DataFrame副本。我们可以直接对特定列进行操作并将结果存储回原始DataFrame中。例如:
这将使每个人的年龄加上5岁。
总结
在Pandas中,我们可以轻松地从现有的DataFrame中提取特定列,以创建一个新的DataFrame副本。我们还可以使用loc
或iloc
属性来提取连续的列。如果只需要在原始DataFrame中对特定列进行操作,则无需创建副本。这样,我们可以更轻松地管理我们的数据,并对其进行必要的处理。