跳至主要內容

2877. 从表中创建 DataFrame


2877. 从表中创建 DataFrame

🟢   🔗 力扣open in new window LeetCodeopen in new window

题目

Write a solution to create a DataFrame from a 2D list called student_data. This 2D list contains the IDs and ages of some students.

The DataFrame should have two columns, student_id and age, and be in the same order as the original 2D list.

The result format is in the following example.

Example 1:

Input: student_data:

[
  [1, 15],
  [2, 11],
  [3, 11],
  [4, 20]
]

Output:

+------------+-----+
| student_id | age |
+------------+-----+
| 1          | 15  |
| 2          | 11  |
| 3          | 11  |
| 4          | 20  |
+------------+-----+

Explanation:

A DataFrame was created on top of student_data, with two columns named student_id and age.

题目大意

编写一个解决方案,基于名为 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 两列。

解题思路

  • 导入 pandas 库。
  • 定义一个以 2D 列表为输入的函数。
  • 使用 pandasDataFrame 构造函数从输入列表创建 DataFrame
  • 在创建 DataFrame 时指定列名称以匹配所需的输出。
  • 返回创建的 DataFrame

复杂度分析

  • 时间复杂度O(n),其中 n 是列表中元素的总数,从列表创建 DataFrame 的时间复杂度与输入列表中的元素数量成正比。
  • 空间复杂度O(n),创建的 DataFrame 将存储输入列表中的所有元素,占用的空间与输入数据大小成正比。

代码

import pandas as pd

def createDataframe(student_data: List[List[int]]) -> pd.DataFrame:
  return pd.DataFrame(student_data, columns = ["student_id", "age"])