如何使用 Python Pandas 更新行和列

  • Post category:Python

使用 Panda 更新行和列涉及到数据框架的修改。Pandas 将数据表存储在 DataFrame 中,每行指定索引,每列则有一个唯一的列名。要使用 Python Pandas 更新行和列,应该使用以下步骤:

  1. 导入 Pandas 库,并创建 DataFrame。
  2. 使用 loc[] 或 iloc[] 访问 DataFrame 中的行和列。
  3. 更新 DataFrame 中的指定行和列。
  4. 保存 DataFrame。

下面是更详细的说明:

  1. 导入 Pandas 库,并创建 DataFrame。

在开始之前,首先应该导入 pandas 库并创建一个 DataFrame。可以使用以下代码来创建一个简单的 DataFrame。

import pandas as pd

# 创建一个包含学生信息(姓名,年龄和性别)的DataFrame
students = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
                         'Age': [20, 21, 19],
                         'Gender': ['F', 'M', 'M']})

运行此代码,将创建一个名为 “students” 的 DataFrame。它包含三个学生的姓名,年龄和性别数据。

  1. 使用 loc[] 或 iloc[] 访问 DataFrame 中的行和列。

要更新特定的行和列,必须首先访问它们。可以使用 loc[] 或 iloc[] 方法来访问它们。以下是一些示例:

# 使用 loc[] 方法根据标签值选择特定的行和列
students.loc[0,'Age']  # 返回第1行和 Age 列的值

# 使用 iloc[] 方法根据整数位置选择特定的行和列
students.iloc[0,1] # 返回第1行和第2列的值

以上示例中,loc[] 方法使用标签值来选择行和列,而 iloc[] 方法使用整数位置来选择行和列。

  1. 更新 DataFrame 中的指定行和列。

有了特定的行和列访问后,需要使用.loc[] 方法和分配运算符”=”来更新 DataFrame 中的值。以下是一个例子,说明如何更新 DataFrame 中第一个学生的年龄。

# 将第1行,Age 列的值更新为 22
students.loc[0,'Age'] = 22

以上代码将 DataFrame 中第一个学生的年龄更新为 22。

  1. 保存 DataFrame。

一旦完成对 DataFrame 的修改,最后要把它保存到磁盘上以备后续使用。可以使用以下代码将 DataFrame 保存为 CSV 文件。

students.to_csv('students.csv', index=False)

以上代码将 DataFrame 存储为名为 “students.csv” 的 CSV 文件,不包含行索引(index=False)。

示例1:

假设有一个包含员工姓名、部门和薪水的 DataFrame,现在需要更新某个员工的薪水,并将修改结果保存到新的 CSV 文件中。

import pandas as pd

# 创建一个包含员工姓名、部门和薪水的 DataFrame
employees = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
                          'Department': ['HR', 'Engineering', 'Marketing'],
                          'Salary': [50000, 80000, 60000]})

# 使用 loc[] 方法选择 Bob 的薪水并更新它
employees.loc[1,'Salary'] = 75000

# 将修改后的 DataFrame 保存为新的 CSV 文件
employees.to_csv('updated_employees.csv', index=False)

运行此代码后,将生成名为 “updated_employees.csv” 的 CSV 文件,其中包含更新后的薪水信息。

示例2:

现在假设有一个包含姓名、年龄和电子邮件的 DataFrame,现在需要将所有人的年龄加 1。

import pandas as pd

# 创建一个包含姓名、年龄和电子邮件的DataFrame
contacts = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],
                         'Age': [20, 21, 19],
                         'Email': ['alice@example.com', 'bob@example.com', 'charlie@example.com']})

# 将所有人的年龄加 1
contacts['Age'] = contacts['Age'] + 1

# 将修改后的 DataFrame 保存为新的 CSV 文件
contacts.to_csv('updated_contacts.csv', index=False)

运行此代码后,将生成名为 “updated_contacts.csv” 的 CSV 文件,其中所有人的年龄都加了 1。