Pandas DataFrame 的 assign 方法

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何在 Python 的 Pandas 库中使用 assign() 方法。assign() 方法允许我们向 DataFrame 添加新列,并返回一个包含所有原始列以及新列的新 DataFrame 对象。我们可以直接分配新列,也可以通过使用函数或表达式来分配。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到 Notebook 选项卡以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 寻求帮助。实验结束后请提供反馈,我们将及时为你解决问题。

导入所需的库

首先,让我们导入必要的库:pandasnumpy

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 分配两个新列 EF。列 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,而无需更改原始数据。