題目
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 pd
def 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、執行結果