Pandas DataFrame Apply 方法

PythonPythonBeginner
立即练习

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

介绍

在本实验中,我们将学习如何在 Python 的 Pandas 库中使用 apply() 方法。apply() 方法允许我们将一个函数应用到 DataFrame 的每一行或每一列上,这对于对数据进行计算或转换非常有用。

虚拟机提示

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

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

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

导入必要的库

首先,我们需要导入 Pandas 库,它提供了 DataFrame 对象和 apply() 方法。如果需要,我们还可以导入其他库以支持我们的计算。

import pandas as pd

创建一个 DataFrame

接下来,让我们创建一个 DataFrame 来进行操作。我们可以使用 Python 列表或字典来定义数据。为了简单起见,我们使用一个字典,其中键代表列名,值代表数据。

data = {
    'Name': ['John', 'Emma', 'David', 'Mary'],
    'Age': [25, 30, 35, 40],
    'Salary': [50000, 60000, 70000, 80000]
}
df = pd.DataFrame(data)
print(df)

定义一个函数

现在,让我们定义一个可以应用到 DataFrame 上的函数。这个函数将接受一个参数,该参数将是 DataFrame 的一行或一列。

def double(x):
    return x * 2

将函数应用到列上

我们可以使用 apply() 方法将定义的函数应用到 DataFrame 的某一列上。在这个例子中,我们将 double() 函数应用到 'Salary' 列。

df['Salary'] = df['Salary'].apply(double)
print(df)

将函数应用到行上

我们也可以通过指定 apply() 方法中的 axis=1 来将函数应用到 DataFrame 的某一行上。在这个例子中,我们将 double() 函数应用到 DataFrame 的每一行。

df = df.apply(double, axis=1)
print(df)

应用 lambda 函数

我们可以直接在 apply() 方法中使用 lambda 函数,而不需要单独定义一个函数。lambda 函数是一个小型匿名函数,可以接受任意数量的参数并返回结果。在这个例子中,我们将一个 lambda 函数应用到 'Age' 列,以计算每个值的平方。

df['Age'] = df['Age'].apply(lambda x: x ** 2)
print(df)

总结

在本实验中,我们学习了如何在 Pandas 中使用 apply() 方法将函数应用到 DataFrame 的每一行或每一列。我们了解了如何定义一个函数并将其应用到列或行上,以及如何在 apply() 方法中直接使用 lambda 函数。apply() 方法是一个强大的工具,可以用于对数据进行计算或转换,从而简化我们的数据分析任务。