Problem

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.

Examples

Example 1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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.

## Solution

### Method 1  Using pandas.DataFrame Constructor

#### Intuition

The key idea is to use the pandas DataFrame constructor to directly convert a 2D list into a DataFrame, specifying the column names. This is efficient and preserves the order of the input list.

#### Approach

1. Import pandas as pd.
2. Use `pd.DataFrame(student_data, columns=["student_id", "age"])` to create the DataFrame.
3. Return the resulting DataFrame.

#### Code

1
2
def createDataframe(student_data: list[list[int]]) -> 'pd.DataFrame':
    return pd.DataFrame(student_data, columns=["student_id", "age"])
#### Complexity - Time complexity: `O(n)`, where n is the number of rows in student_data, as each row is processed once. - 🧺 Space complexity: `O(n)`, for storing the DataFrame.