为现有的DataFrame添加新列的过程可以通过Pandas中的assign()方法来实现,该方法可以直接在原始DataFrame基础上添加新的列,并返回一个具有新列的新DataFrame。下面是详细的攻略:
- 创建一个DataFrame
首先,我们需要创建一个示例DataFrame来演示如何添加新列。在本例中,我们将创建一个包含“姓名”和“年龄”的简单DataFrame,如下所示:
import pandas as pd
df = pd.DataFrame({'姓名': ['张三', '李四', '王五'],
'年龄': [20, 25, 30]})
这将创建一个名为“df”的DataFrame,其中包含两列:“姓名”和“年龄”。
- 通过assign()方法添加新列
接下来,我们可以使用assign()方法来添加新列。这个方法可以接受新列的名称作为参数,并返回一个包含新列的新DataFrame。例如,如果我们要添加一个名为“性别”的新列,其中所有人的性别都是“男”,可以执行以下操作:
df = df.assign(性别='男')
这将创建一个名为“df”的新DataFrame,其中包含原始“姓名”和“年龄”列以及一个新的名为“性别”的列,其中所有值都为“男”。
- 将新列设置为数值列
如果我们要将新列设置为数值列,则可以使用与上述示例相同的assign()方法。例如,如果我们要添加一个名为“身高”的新列,并将所有人的身高设置为180厘米,则可以执行以下操作:
df = df.assign(身高=180)
这将创建一个名为“df”的新DataFrame,其中包含原始“姓名”和“年龄”列以及一个新的名为“身高”的列,其中所有值都为180。
- 将新列设置为基于现有列的计算结果
我们也可以将新列设置为基于现有列的计算结果。例如,如果我们要添加一个名为“出生年份”的新列,该列将计算每个人的出生年份,则可以执行以下操作:
df = df.assign(出生年份=lambda x: 2021 - x['年龄'])
这将创建一个名为“df”的新DataFrame,其中包含原始“姓名”和“年龄”列以及一个新的名为“出生年份”的列,该列将计算每个人的出生年份。
在上述代码中,我们使用lambda函数来为新列指定计算方式。请注意,这里的x是DataFrame的引用,我们可以像使用任何其他DataFrame一样使用它来进行计算。
这些就是在Pandas中为现有的DataFrame添加新列的基本技巧。通过使用assign()方法,我们可以方便地添加任意数量的新列,并使用不同的方式进行计算,并且保留原始DataFrame不变。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Pandas中为现有的DataFrame添加新列 - Python技术站