题目
编写一个解决方案,基于名为 student_data
的二维列表 创建 一个 DataFrame 。这个二维列表包含一些学生的 ID 和年龄信息。DataFrame 应该有两列, student_id
和 age
,并且与原始二维列表的顺序相同。返回结果格式如下示例所示。
示例 1:
输入:
student_data:
[
[1, 15],
[2, 11],
[3, 11],
[4, 20]
]
输出:
+------------+-----+
| student_id | age |
+------------+-----+
| 1 | 15 |
| 2 | 11 |
| 3 | 11 |
| 4 | 20 |
+------------+-----+
解释:
基于 student_data 创建了一个 DataFrame,包含 student_id 和 age 两列。
解决方案
1、审题,理解题意
2D 列表: 列表的列表,其中每个内部列表表示一行数据。题目中的student_data就是一个二维列表,是列表中又包含着列表,其中被包含的每一个列表都代表一个单独的记录,例如 【1,15】就代表一个学生的ID是1,年龄是15。
DataFrame: 是 pandas 库提供的一种强大而方便的二维标记数据结构。它是一个类似于 2D 表格的结构,类似于电子表格或 SQL 表格。每一行代表一个单独的记录,每一列代表一个不同的属性。
题目中的意思是想让我们将 2D 列表转换为 pandas DataFrame。
2、解题思路
导入 pandas:
import pandas as pd #该行导入 pandas 库并为其提供别名 pd。
定义函数:
def createDataframe(student_data: List[List[int]]) -> pd.DataFrame: #该行定义了一个名为 createDataframe 的函数,该函数接受 DataFrame student_data 作为参数并返回 DataFrame。
使用 pd.DataFrame():
pd.DataFrame(student_data) #将允许我们将 2D 列表转换为 DataFrame。
我们可以使用 columns 参数设置自定义列名。首先,我们按照列名在 DataFrame 上的显示顺序创建一个列名列表。然后,我们将在调用 pd.DataFrame() 函数时将列表作为参数提供。
column_names = ["student_id", "age"]
pd.DataFrame(student_data, columns=column_names)
3、代码实现
import pandas as pd
def createDataframe(student_data: List[List[int]]) -> pd.DataFrame:
column_names = ["student_id", "age"]
result_dataframe = pd.DataFrame(student_data, columns=column_names)
return result_dataframe
4、执行结果
实际结果与预期结果一致,题目验证通过。