2884. 修改列
2884. 修改列
题目
DataFrame
employees
+-------------+--------+ | Column Name | Type | +-------------+--------+ | name | object | | salary | int | +-------------+--------+
A company intends to give its employees a pay rise.
Write a solution to modify the salary
column by multiplying each salary by 2.
The result format is in the following example.
Example 1:
Input: DataFrame
employees
+---------+--------+ | name | salary | +---------+--------+ | Jack | 19666 | | Piper | 74754 | | Mia | 62509 | | Ulysses | 54866 | +---------+--------+
Output:
+---------+--------+ | name | salary | +---------+--------+ | Jack | 39332 | | Piper | 149508 | | Mia | 125018 | | Ulysses | 109732 | +---------+--------+
Explanation: Every salary has been doubled.
题目大意
DataFrame
employees
+-------------+--------+ | Column Name | Type | +-------------+--------+ | name | object | | salary | int | +-------------+--------+
一家公司决定增加员工的薪水。
编写一个解决方案,将每个员工的薪水乘以 2 来 修改 salary
列。
返回结果格式如下示例所示。
示例 1:
输入: DataFrame
employees
+---------+--------+ | name | salary | +---------+--------+ | Jack | 19666 | | Piper | 74754 | | Mia | 62509 | | Ulysses | 54866 | +---------+--------+
输出:
+---------+--------+ | name | salary | +---------+--------+ | Jack | 39332 | | Piper | 149508 | | Mia | 125018 | | Ulysses | 109732 | +---------+--------+
解释: 每个人的薪水都被加倍。
解题思路
- 直接使用 Pandas 的列操作功能,可以对整列数据进行矢量化操作(即一次性对整列应用数学运算),这比逐行操作更高效。
- 通过
employees['salary'] *= 2
,将salary
列中的每个值都乘以 2。 - 返回修改后的 DataFrame。
复杂度分析
- 时间复杂度:
O(n)
,其中n
是行数,需要对salary
列中的每个值进行乘法运算。 - 空间复杂度:
O(1)
,修改是在原 DataFrame 中进行的,没有创建新列或复制 DataFrame。
代码
import pandas as pd
def modifySalaryColumn(employees: pd.DataFrame) -> pd.DataFrame:
employees['salary'] *= 2
return employees