添加多列数据到 Pandas 数据框可以使用 assign
方法和 loc
方法。在使用这两种方法之前,必须首先创建一个 Pandas 数据框,可以使用 pd.DataFrame
函数创建一个数据框。
下面是一个示例数据框:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 26, 27, 28]}
df = pd.DataFrame(data)
print(df)
输出:
name age
0 Alice 25
1 Bob 26
2 Charlie 27
3 David 28
现在我们想要向这个数据框中添加两列数据:一个列为生日 birthday
,另一个列为身高 height
。
方法一:使用 assign
方法
assign
方法接收一个或多个函数,并将函数的返回值分别作为新的列添加到数据框中。下面是一个示例使用 assign
方法添加生日和身高的例子:
def get_birthday(name):
if name == 'Alice':
return '1995-01-01'
elif name == 'Bob':
return '1994-03-15'
elif name == 'Charlie':
return '1993-05-23'
elif name == 'David':
return '1992-07-12'
def get_height(name):
if name == 'Alice':
return 168
elif name == 'Bob':
return 170
elif name == 'Charlie':
return 173
elif name == 'David':
return 175
df = df.assign(birthday=df['name'].apply(get_birthday),
height=df['name'].apply(get_height))
print(df)
输出:
name age birthday height
0 Alice 25 1995-01-01 168
1 Bob 26 1994-03-15 170
2 Charlie 27 1993-05-23 173
3 David 28 1992-07-12 175
方法二:使用 loc
方法
使用 loc
方法可以直接指定数据框的列名,在列名后添加新列的值。下面是一个示例使用 loc
方法添加生日和身高的例子:
df.loc[:, 'birthday'] = df['name'].apply(get_birthday)
df.loc[:, 'height'] = df['name'].apply(get_height)
print(df)
输出:
name age birthday height
0 Alice 25 1995-01-01 168
1 Bob 26 1994-03-15 170
2 Charlie 27 1993-05-23 173
3 David 28 1992-07-12 175
以上就是在 Pandas 中向数据框架中添加多列数据的完整攻略。