📅  最后修改于: 2023-12-03 15:11:07.176000             🧑  作者: Mango
在 Python 中,我们经常需要在已有的数据集中添加新的列用于进一步分析。本文将介绍三种不同的方法来添加新列到 Pandas 数据帧中。
DataFrame.assign() 方法可以在现有的数据框上添加一个新的列,同时返回一个新的数据框。该方法需要传入一个字典,字典的键是新列的名称,值是新列的值。
import pandas as pd
# 创建一个数据框
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']})
# 使用 assign() 方法添加新列
df = df.assign(status=['single', 'married', 'single', 'married'])
# 查看添加新列后的数据框
print(df)
输出结果:
name age gender status
0 Alice 25 F single
1 Bob 32 M married
2 Charlie 18 M single
3 David 47 M married
第二种方法是直接在现有数据框中添加一个新列。这可以通过以下方式实现:
import pandas as pd
# 创建一个数据框
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']})
# 直接给数据框赋值新列
df['status'] = ['single', 'married', 'single', 'married']
# 查看添加新列后的数据框
print(df)
输出结果:
name age gender status
0 Alice 25 F single
1 Bob 32 M married
2 Charlie 18 M single
3 David 47 M married
如果新列的值需要基于已有列的值计算得到,可以使用 apply() 方法来实现。首先,定义一个函数,用于计算新列的值。该函数需要接受一行数据,然后返回一个值,表示新列的值。接下来,使用 apply() 方法将该函数应用于数据框的每一行,并将计算得到的值赋给新列。
import pandas as pd
# 创建一个数据框
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 47],
'gender': ['F', 'M', 'M', 'M']})
# 定义一个函数,用于计算 status 列的值
def get_status(row):
if row['age'] < 30 and row['gender'] == 'M':
return 'young man'
else:
return 'other'
# 使用 apply() 方法添加新列
df['status'] = df.apply(get_status, axis=1)
# 查看添加新列后的数据框
print(df)
输出结果:
name age gender status
0 Alice 25 F other
1 Bob 32 M other
2 Charlie 18 M young man
3 David 47 M other
以上是在 Python 中添加其他列的新列的三种方法。无论使用哪种方法,都可以为已有的数据框添加新的列,以供进一步分析。