在 Pandas 中,添加新列是一个常见且重要的操作,可用于扩展数据框并包含更多信息。有几种方法可以向数据框添加新列,具体取决于数据的类型和所需的结果。
方法 1:使用赋值运算符
最简单的方法是使用赋值运算符 (=
) 将新列直接分配给数据框。新列的名称将是分配语句的左侧,值将是分配语句的右侧。
import pandas as pd
df = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Carol'],
'Age': [20, 25, 30]})
# 使用赋值运算符添加新列
df['Gender'] = ['Female', 'Male', 'Female']
print(df)
# 输出:
Name Age Gender
0 Alice 20 Female
1 Bob 25 Male
2 Carol 30 Female
方法 2:使用 insert()
方法
insert()
方法允许您在指定位置插入新列。它接受以下参数:
loc
:要插入新列的位置(整数索引)column
:新列的名称value
:新列的值
# 使用 insert() 方法添加新列
df.insert(1, 'Occupation', ['Student', 'Doctor', 'Teacher'])
print(df)
# 输出:
Name Occupation Age Gender
0 Alice Student 20 Female
1 Bob Doctor 25 Male
2 Carol Teacher 30 Female
方法 3:使用 assign()
方法
assign()
方法允许您使用表达式创建新列。它返回一个具有新列的副本,而不会修改原始数据框。
# 使用 assign() 方法添加新列
df = df.assign(Income=[1000, 2000, 3000])
print(df)
# 输出:
Name Occupation Age Gender Income
0 Alice Student 20 Female 1000
1 Bob Doctor 25 Male 2000
2 Carol Teacher 30 Female 3000
添加列的注意事项
- 新列的名称必须是唯一的。
- 新列的值必须与数据框中的其他列具有相同长度。
- 如果新列的值类型与现有列不同,则数据框的
dtype
将自动更新为object
。 - 使用
copy=False
参数可以提高assign()
方法的性能,但可能会产生意外结果。
其他方法
除了上述方法之外,您还可以使用以下方法向数据框添加新列:
concat()
:将两个或多个具有相同索引的数据框连接在一起。join()
:将两个或多个具有不同索引的数据框基于一个或多个公共键连接在一起。merge()
:将两个或多个数据框基于一个或多个公共列合并在一起。
这些方法通常用于从其他数据源或数据转换中添加新列。