在Pandas中向数据框架添加多列数据

  • Post category:Python

添加多列数据到 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 中向数据框架中添加多列数据的完整攻略。