📌  相关文章
📜  如何从现有列创建新的数据框列 - Python (1)

📅  最后修改于: 2023-12-03 15:08:16.007000             🧑  作者: Mango

如何从现有列创建新的数据框列 - Python

在Python中创建新的数据框列可以使用pandas库。pandas库提供了许多函数来操作数据框。在这个主题中,我们将介绍如何从现有列创建新的数据框列。

首先,让我们先创建一个简单的数据框。

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 30, 35, 40],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df)

输出结果为:

       name  age gender
0     Alice   25      F
1       Bob   30      M
2   Charlie   35      M
3     David   40      M

在这个数据框中,我们有三列:name、age和gender。现在,我们想创建一个新的列,它将姓名和性别组合在一起,并使用-符号连接它们。我们可以使用数据框的apply函数来做到这一点。

df['name_gender'] = df.apply(lambda row: '-'.join([row['name'], row['gender']]), axis=1)
print(df)

输出结果为:

       name  age gender name_gender
0     Alice   25      F    Alice-F
1       Bob   30      M      Bob-M
2   Charlie   35      M  Charlie-M
3     David   40      M    David-M

在这个演示中,我们使用了apply函数,并传递了一个lambda函数作为参数。该lambda函数获取每一行,并使用join函数将name和gender连接起来,并在中间添加了-符号。我们将这个新的列命名为name_gender,并将其添加到原始数据框中。

除了使用apply之外,我们还可以使用其他函数来创建新的列。例如,我们可以使用“+”操作符来组合两列,在以下示例中,我们将name和age列组合在一起。

df['name_age'] = df['name'] + ' ' + df['age'].astype(str)
print(df)

输出结果为:

       name  age gender name_gender      name_age
0     Alice   25      F    Alice-F     Alice 25
1       Bob   30      M      Bob-M       Bob 30
2   Charlie   35      M  Charlie-M   Charlie 35
3     David   40      M    David-M     David 40

在这个演示中,我们使用了“+”操作符并传递了两个列:name和将age转换为字符串的age列。我们将结果添加到数据框中,并将其命名为name_age。

最后,在创建新的数据框列时,在还有其他一些函数可以使用,例如assign,concat,insert和merge。这些函数各有不同的功能,根据您的需求选择合适的函数。

这是从现有列创建新的数据框列的一个简单示例。使用pandas库中提供的函数可以轻松地完成这项任务,并且可以根据您的需求轻松地自定义结果。