跳过到内容

如何轻松地为初学者添加多列-pandas教程

CodeMDD.io

pandas 添加多列

概述

在数据分析和处理过程中,经常需要向 pandas 数据框添加多列。本教程将详细介绍如何使用 pandas 库在数据框中添加多列。我们将讨论不同的方法和技巧,并提供逐步指南和可执行的示例代码。

1. 导入 pandas 库

首先,我们需要导入 pandas 库。使用以下代码将 pandas 库导入到您的 Python 环境中:

import pandas as pd

2. 创建数据框

为了演示如何添加多列,我们首先需要创建一个 pandas 数据框。您可以使用以下代码创建一个简单的数据框:

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40]}
df = pd.DataFrame(data)

这将创建一个名为 df 的数据框,其中包含两列:NameAge

3. 添加单个列

在添加多个列之前,我们先来看看如何添加一个单个列。可通过指定列名和相应的值向数据框中添加新列。例如,以下代码将在数据框中添加一个名为 City 的新列,并为每个观测值分配相应的城市名称:

df['City'] = ['London', 'New York', 'Paris', 'Tokyo']

在上述代码中,我们创建了一个名为 City 的新列,并将每个观测值的城市名称赋值给相应的行。

4. 添加多个列

当我们需要一次添加多个列时,可以使用多个列名和对应的列表值来实现。例如,以下代码将在数据框中添加两个新列 SalaryDepartment

df['Salary'] = [5000, 6000, 7000, 8000]
df['Department'] = ['Sales', 'Human Resources', 'Finance', 'IT']

在上述代码中,我们使用列表将 Salary 列和 Department 列的值分别赋给数据框中的每个观测值。

5. 利用 assign() 函数添加列

pandas 还提供了 assign() 函数,可用于在数据框中添加多个列。以下是将 assign() 函数与字典一起使用的示例代码:

df = df.assign(Height=[165, 170, 175, 180], Weight=[60, 65, 70, 75])

上述代码将创建两个名为 HeightWeight 的新列,并将相应的值分配给数据框中的每个观测值。

6. 使用 apply() 函数添加列

如果想根据已有的列来添加新的列,可以使用 apply() 函数。以下示例代码演示了如何根据已有列 Age 计算 Year of Birth

df['Year of Birth'] = df['Age'].apply(lambda x: pd.Timestamp.now().year - x)

在上述代码中,我们利用了 apply() 函数来将 df['Age'] 列的每个值传递给一个 lambda 函数。lambda 函数返回当前年份减去 Age 值,我们将其赋值给名为 Year of Birth 的新列。

7. 使用 insert() 函数插入列

如果我们想要将新列插入到数据框的指定位置,可以使用 insert() 函数。以下代码演示了如何将名为 Email 的新列插入到数据框的第二列:

df.insert(1, 'Email', ['alice@example.com', 'bob@example.com', 'charlie@example.com', 'david@example.com'])

在上述代码中,我们使用了 insert() 函数,将新列的名称为 Email,在第一列之后指定了位置索引为 1.

8. 通过列表生成器添加列

在某些情况下,我们可能需要使用一些特定的逻辑或函数来生成列的值。这时可以使用列表生成器来创建新列。以下是示例代码:

df['Is Adult'] = ['Yes' if age >= 18 else 'No' for age in df['Age']]

上述代码根据 Age 列的值,将新列 Is Adult 设置为 ‘Yes’ 或 ‘No’。

9. 覆盖已有列

有时候,我们需要根据现有的值来更新或覆盖已有的列。这可以通过直接对现有列重新赋值来实现。以下是示例代码:

df['Age'] = [age + 1 for age in df['Age']]

在上述代码中,我们使用列表生成器将 Age 列的值加1,并将结果赋值回 Age 列。

10. 删除多个列

如果需要删除已存在的多个列,可以使用 drop() 方法。以下是示例代码:

df = df.drop(['Age', 'City'], axis=1)

上述代码将删除名为 AgeCity 的两列。

结论

添加多个列是 pandas 数据处理中的常见任务。本教程介绍了如何使用不同的方法和技巧在数据框中添加多列。有了这些技巧,您可以轻松地处理相关的数据操作和分析。

常见问题解答

  1. 如何在数据框中添加单个列? 请参考第3节中的示例代码,使用列名和对应的值来添加新列。

  2. 如何在数据框中添加多个列? 请参考第4节中的示例代码,使用多个列名和对应的列表值来添加多个新列。

  3. 如何在数据框中插入列到指定位置? 请参考第7节中的示例代码,使用 insert() 函数插入列,并指定位置索引。

  4. 如何删除已存在的多个列? 请参考第10节中的示例代码,使用 drop() 方法来删除多个列。

  5. 如何根据已有的列来计算新的列值? 请参考第6节中的示例代码,使用 apply() 函数并结合 lambda 函数实现。