# 如何用Python的pandas库从表中创建 DataFrame

# 题目

编写一个解决方案,基于名为 student_data 的二维列表 创建 一个 DataFrame 。这个二维列表包含一些学生的 ID 和年龄信息。DataFrame 应该有两列, student_idage,并且与原始二维列表的顺序相同。返回结果格式如下示例所示。

示例 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、执行结果

image-20231024234148712

实际结果与预期结果一致,题目验证通过。

更新时间: 2023/10/29 02:21:09