📅  最后修改于: 2023-12-03 15:08:16.007000             🧑  作者: Mango
在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库中提供的函数可以轻松地完成这项任务,并且可以根据您的需求轻松地自定义结果。