如何用Python的pandas库创建新列,计算员工奖金为工资的两倍

62 阅读2分钟

题目

DataFrame employees
+-------------+--------+
| Column Name | Type.  |
+-------------+--------+
| name        | object |
| salary      | int.   |
+-------------+--------+

一家公司计划为员工提供奖金。

编写一个解决方案,创建一个名为 bonus 的新列,其中包含 salary 值的 两倍

返回结果格式如下示例所示。

示例 1:

输入:
DataFrame employees
+---------+--------+
| name    | salary |
+---------+--------+
| Piper   | 4548   |
| Grace   | 28150  |
| Georgia | 1103   |
| Willow  | 6593   |
| Finn    | 74576  |
| Thomas  | 24433  |
+---------+--------+
输出:
+---------+--------+--------+
| name    | salary | bonus  |
+---------+--------+--------+
| Piper   | 4548   | 9096   |
| Grace   | 28150  | 56300  |
| Georgia | 1103   | 2206   |
| Willow  |  593   | 13186  |
| Finn    | 74576  | 149152 |
| Thomas  | 24433  | 48866  |
+---------+--------+--------+
解释:
通过将 salary 列中的值加倍创建了一个新的 bonus 列。

解决方案

1、审题,理解题意

题目要求我们在 DataFrame employees 中创建一个新的列 'bonus',新列是每个员工工资的两倍。

2、解题思路

先来回顾几个概念:

pandas DataFrame: 与 SQL 表类似,DataFrame 是以列形式显示的 Series 的集合。我们可以添加、删除和更改 DataFrame 中的值、行和列。 可以对 DataFrame Series 中的每个单独元素执行的操作。按列操作的几种类型的示例包括算术操作、聚合函数、筛选和条件操作以及字符串操作。

pandas Series: pandas 库提供的一维数据结构。可以将 Series 视为 pandas DataFrame 中的一列数据。一个 Series 可以包含广泛的数据类型,但它们是同质的,所有元素必须是相同的数据类型。与 DataFrame 一样,Series 被编入索引,并且可以被标记以便于数据检索。

那么题目的解题思路我们可以创建新列,列名为bonus ,值为salary列值的两倍,然后将新列分配给 employees DataFrame。当我们执行 employees['bonus'] = employees['salary'] * 2, 我们会在 DataFrame employees 中创建一个叫做 bonus 的新列,并且使用 salary 列值的双倍填充它。

3、代码实现

import pandas as pd

def createBonusColumn(employees: pd.DataFrame) -> pd.DataFrame:
    employees['bonus'] = employees['salary'] * 2
    return employees

4、执行结果

image-20231025075716647