题目DataFrame students+-------------+--------+| Column Name | Type |+-------------+--------+| id | int || first | object || last | object || age | int |+-------------+--------+
编写一个解决方案,按以下方式重命名列: - id 重命名为 student_id
- first 重命名为 first_name
- last 重命名为 last_name
- age 重命名为 age_in_years
返回结果格式如下示例所示。 示例 1: 输入:+----+---------+----------+-----+| id | first | last | age |+----+---------+----------+-----+| 1 | Mason | King | 6 || 2 | Ava | Wright | 7 || 3 | Taylor | Hall | 16 || 4 | Georgia | Thompson | 18 || 5 | Thomas | Moore | 10 |+----+---------+----------+-----+输出:+------------+------------+-----------+--------------+| student_id | first_name | last_name | age_in_years |+------------+------------+-----------+--------------+| 1 | Mason | King | 6 || 2 | Ava | Wright | 7 || 3 | Taylor | Hall | 16 || 4 | Georgia | Thompson | 18 || 5 | Thomas | Moore | 10 |+------------+------------+-----------+--------------+解释:列名已相应更换。
解题方案1、审题,理解题意题目意思有一个名为 students 的 DataFrame,它包含学生数据。但是,列名并不具有很强的描述性,要对列名进行更名。 2、解题思路这时我们可以用pandas库中的rename函数来重命名列。先来学习下rename函数: - rename函数: 在 pandas 中rename 函数在涉及到重命名列名或索引名时是一个非常有用的工具。
- rename用法: DataFrame.rename(mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False, level=None, errors='raise')。rename方法有许多可选的参数。出于我们的目的,我们感兴趣的是 columns 参数,它允许您传递一个字典,其中键表示当前列名,值表示新列名。
参数定义:- mapper ,index, columns:可以传递以重命名索引或列的词典。在我们的示例中,我们使用columns。
- axis: 可以是 'index' 或 'columns'。确定是重命名索引还是重命名列。默认情况下,如果您提供 columns 参数,您将重命名列。
- copy: 如果设置为 True,则创建一个新的DataFrame。如果为 False,则修改原始 DataFrame。
- inplace: 如果设置为True,则重命名会原地修改DataFrame,不会返回任何内容。如果为False,则在不修改原有DataFrame 的情况下,返回一个新的带有更名列的 DataFrame。
- level: 对于具有多级索引的 DataFrame,应当重命名标签的级别。
- errors: 如果是raise,如果尝试重命名不存在的项,则会引发错误。如果设置为 ignore,任何重命名项目的失败都将被忽略。
- 代码实现步骤:
- import pandas as pd #首先导入 pandas 库,并给它起一个别名 pd。
- def renameColumns(students: pd.DataFrame) -> pd.DataFrame: #我们定义了一个函数 renameColumns,该函数接受 DataFrame students 并返回修改后的 DataFrame。
- 在该函数中,我们对 students 使用rename 方法来重命名列。我们将一个词典传递给 columns 参数,以指定每个列的新名称。
students = students.rename( columns={ 'id': 'student_id', 'first': 'first_name', 'last': 'last_name', 'age': 'age_in_years', } ) - return students #然后返回修改后的 DataFrame。
- 请记住,此函数不会更改原始的 DataFrame,而是返回一个新的 DataFrame,其中包含重命名的列。如果您希望修改原有的 DataFrame,可以在调用rename 方法时将inplace 参数设置为True。
3、代码实现import pandas as pddef renameColumns(students: pd.DataFrame) -> pd.DataFrame: students = students.rename( columns={ 'id': 'student_id', 'first': 'first_name', 'last': 'last_name', 'age': 'age_in_years', } ) return students
4、执行结果
|