pandas使用assign函数新增列的方法

2023-02-24 00:00:00 函数 方法 新增

在 Pandas 中,可以使用索引操作或 assign() 方法添加新列到 DataFrame 中。以下是两种方法的示例代码:

方法 1:使用索引操作

import pandas as pd

# 创建示例DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'],
                   'age': [25, 30, 35]})

# 添加新列
df['city'] = ['New York', 'Paris', 'London']

# 打印结果
print(df)

输出结果如下所示:

       name  age      city
0     Alice   25  New York
1       Bob   30     Paris
2  Charlie   35    London

在这个示例中,我们创建了一个包含 name 和 age 两列的 DataFrame,并通过索引操作添加了一个名为 city 的新列。注意,新列的长度必须与 DataFrame 的长度相同。

方法 2:使用 assign() 方法

import pandas as pd

# 创建示例DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'],
                   'age': [25, 30, 35]})

# 使用 assign 方法添加新列
df = df.assign(city=['New York', 'Paris', 'London'])

# 打印结果
print(df)

输出结果与上面相同。assign() 方法接受一个或多个参数,每个参数都是一个新列的名称和值的键值对。在上面的示例中,我们为 DataFrame 添加了一个名为 city 的新列,并为每个行指定了该列的值。注意,assign() 方法返回一个新的 DataFrame,而不会改变原来的 DataFrame。因此,我们需要将返回值重新赋值给原来的 DataFrame。

在以上两种方法中,我们都可以将常量值或 Series 作为新列的值。例如,可以使用以下代码将一个包含随机数的 Series 作为新列添加到 DataFrame 中:

import pandas as pd
import numpy as np

# 创建示例DataFrame
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'],
                   'age': [25, 30, 35]})

# 添加新列
df['income'] = np.random.normal(loc=50000, scale=10000, size=len(df))

# 打印结果
print(df)

相关文章