pandas使用assign函数新增列的方法
在 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)
相关文章