介绍
在本实验中,我们将学习如何在 Python 的 Pandas 库中使用 assign() 方法。assign() 方法允许我们向 DataFrame 添加新列,并返回一个包含所有原始列以及新列的新 DataFrame 对象。我们可以直接分配新列,也可以通过使用函数或表达式来分配。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到 Notebook 选项卡以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,请随时向 Labby 寻求帮助。实验结束后请提供反馈,我们将及时为你解决问题。
导入所需的库
首先,让我们导入必要的库:pandas 和 numpy。
import pandas as pd
import numpy as np
创建一个 DataFrame
接下来,让我们创建一个包含一些示例数据的 DataFrame。我们将使用 pd.DataFrame() 函数从字典中创建一个 DataFrame。
data = {'A': [1, 2, 3, 4, 5], 'B': [6, 7, 8, 9, 10]}
df = pd.DataFrame(data)
print(df)
输出结果将是:
A B
0 1 6
1 2 7
2 3 8
3 4 9
4 5 10
为 DataFrame 分配一个新列
现在,让我们使用 assign() 方法向 DataFrame 分配一个新列。我们可以通过指定列名和值直接分配一个新列。
df = df.assign(C=[11, 12, 13, 14, 15])
print(df)
输出结果将是:
A B C
0 1 6 11
1 2 7 12
2 3 8 13
3 4 9 14
4 5 10 15
使用函数分配新列
我们还可以通过向 assign() 方法传递一个函数来为 DataFrame 分配一个新列。该函数将 DataFrame 作为输入,并执行计算以生成新列的值。让我们分配一个新列 D,其值为 C 列的值加 1。
df = df.assign(D=lambda x: x['C'] + 1)
print(df)
输出结果将是:
A B C D
0 1 6 11 12
1 2 7 12 13
2 3 8 13 14
3 4 9 14 15
4 5 10 15 16
为 DataFrame 分配多列
我们可以通过多次使用 assign() 方法为 DataFrame 分配多列。让我们为 DataFrame 分配两个新列 E 和 F。列 E 将计算 A 列的值加 1,而列 F 将计算 B 列的值减 1。
df = df.assign(E=lambda x: x['A'] + 1).assign(F=lambda x: x['B'] - 1)
print(df)
输出结果将是:
A B C D E F
0 1 6 11 12 2 5
1 2 7 12 13 3 6
2 3 8 13 14 4 7
3 4 9 14 15 5 8
4 5 10 15 16 6 9
总结
在本实验中,我们学习了如何在 Pandas 中使用 assign() 方法向 DataFrame 添加新列。我们可以直接分配新列,或者使用函数或表达式来分配。这种方法使我们能够轻松地操作和修改 DataFrame,而无需更改原始数据。