📖 Scenario: You work in a small shop and have sales data stored as numbers in a NumPy array. You want to organize this data into a table with labels for each column to understand it better.
🎯 Goal: Create a pandas DataFrame from a given NumPy array and add column names to make the data easy to read.
📋 What You'll Learn
Create a NumPy array named sales_data with the exact values [[10, 20, 30], [15, 25, 35], [20, 30, 40]]
Create a list named columns with the exact values ['Monday', 'Tuesday', 'Wednesday']
Create a pandas DataFrame named df from sales_data with columns set to columns
Print the DataFrame df to display the table
💡 Why This Matters
🌍 Real World
Organizing raw numerical data into tables helps businesses analyze sales, inventory, or customer information clearly.
💼 Career
Data scientists and analysts often convert arrays or raw data into DataFrames to prepare for analysis and visualization.
Progress0 / 4 steps
1
Create the NumPy array with sales data
Import NumPy as np and create a NumPy array called sales_data with these exact values: [[10, 20, 30], [15, 25, 35], [20, 30, 40]]
Pandas
Hint
Use np.array() to create the array with the exact nested list of numbers.
2
Create the list of column names
Create a list called columns with these exact strings: 'Monday', 'Tuesday', and 'Wednesday'
Pandas
Hint
Use square brackets [] to create the list with the exact day names as strings.
3
Create the pandas DataFrame from the NumPy array
Import pandas as pd and create a DataFrame called df from sales_data using columns=columns to set the column names
Pandas
Hint
Use pd.DataFrame() with the columns parameter to add column names.
4
Print the DataFrame to see the table
Write a print statement to display the DataFrame df
Pandas
Hint
Use print(df) to show the table in the output.
Practice
(1/5)
1. What does creating a pandas DataFrame from a NumPy array allow you to do?
easy
A. Automatically visualize the data as a chart
B. Convert a DataFrame back into a NumPy array automatically
C. Organize array data into a labeled table with rows and columns
D. Run SQL queries directly on the NumPy array
Solution
Step 1: Understand what a DataFrame is
A DataFrame is a table-like structure with rows and columns, which helps organize data clearly.
Step 2: Know the role of NumPy arrays
NumPy arrays hold data in a grid but lack labels for rows and columns.
Final Answer:
Organize array data into a labeled table with rows and columns -> Option C
Quick Check:
DataFrame = labeled table from array [OK]
Hint: DataFrames add labels to arrays for easier data handling [OK]
Common Mistakes:
Thinking DataFrame converts arrays to charts automatically
Confusing DataFrame creation with SQL querying
Believing DataFrame auto-converts back to NumPy arrays
2. Which of the following is the correct way to create a pandas DataFrame from a NumPy array arr with column names ['A', 'B']?
easy
A. pd.DataFrame(arr, columns=['A', 'B'])
B. pd.DataFrame(arr, index=['A', 'B'])
C. pd.DataFrame(columns=['A', 'B'], arr)
D. pd.DataFrame(arr, names=['A', 'B'])
Solution
Step 1: Recall DataFrame constructor parameters
The columns parameter sets column labels, and data is the array.
Step 2: Check each option
pd.DataFrame(arr, columns=['A', 'B']) correctly uses columns=['A', 'B'] with the array as data. pd.DataFrame(arr, index=['A', 'B']) wrongly uses index for columns. pd.DataFrame(columns=['A', 'B'], arr) incorrectly passes arr positionally after keyword columns, causing a syntax error. pd.DataFrame(arr, names=['A', 'B']) uses a non-existent names parameter.
Final Answer:
pd.DataFrame(arr, columns=['A', 'B']) -> Option A
Quick Check:
Use columns= for column names [OK]
Hint: Use columns= to name columns when creating DataFrame [OK]
Common Mistakes:
Using index= instead of columns= for column names
Passing data positionally after columns keyword (syntax error)
Using invalid parameter names like names=
3. What will be the output of the following code?
import numpy as np
import pandas as pd
arr = np.array([[1, 2], [3, 4]])
df = pd.DataFrame(arr, columns=['X', 'Y'])
print(df)
medium
A. X Y
1 2 3
4 5 6
B. 0 1
X 1 2
Y 3 4
C. Error: columns length mismatch
D. X Y
0 1 2
1 3 4
Solution
Step 1: Understand the array and DataFrame creation
The array has shape (2,2) with values [[1,2],[3,4]]. Columns are named ['X', 'Y'].
Step 2: Predict DataFrame output
Rows get default index 0 and 1. Columns are X and Y. Values fill accordingly.
Final Answer:
X Y
0 1 2
1 3 4 -> Option D
Quick Check:
Array shape matches DataFrame shape with columns named [OK]
Hint: Rows get default 0-based index if not specified [OK]
Common Mistakes:
Confusing row and column labels
Expecting error due to columns parameter
Misreading array shape and values
4. Identify the error in this code snippet that tries to create a DataFrame from a NumPy array:
import numpy as np
import pandas as pd
arr = np.array([[5, 6], [7, 8]])
df = pd.DataFrame(arr, columns=['A'])
print(df)
medium
A. NumPy array must be 1D to create a DataFrame
B. The columns list length does not match the number of array columns
C. DataFrame constructor requires index parameter when columns are given
D. The array contains integers, which are not allowed in DataFrames
Solution
Step 1: Check array shape and columns length
The array has 2 columns, but columns=['A'] has length 1.
Step 2: Understand pandas error
pandas raises a ValueError because the number of columns does not match the array's second dimension.
Final Answer:
The columns list length does not match the number of array columns -> Option B
Quick Check:
Columns length must equal array columns [OK]
Hint: Columns list length must match array's column count [OK]
Common Mistakes:
Assuming 1D array is required
Thinking index parameter is mandatory with columns
Believing integers are invalid in DataFrames
5. You have a NumPy array arr = np.array([[10, 20], [30, 40], [50, 60]]). You want to create a DataFrame with columns named ['Height', 'Weight'] and row labels ['Alice', 'Bob', 'Charlie']. Which code correctly creates this DataFrame?
hard
A. pd.DataFrame(arr, columns=['Height', 'Weight'], index=['Alice', 'Bob', 'Charlie'])
B. pd.DataFrame(arr, index=['Height', 'Weight'], columns=['Alice', 'Bob', 'Charlie'])
C. pd.DataFrame(data=arr, names=['Height', 'Weight'], labels=['Alice', 'Bob', 'Charlie'])
D. pd.DataFrame(arr, rows=['Alice', 'Bob', 'Charlie'], cols=['Height', 'Weight'])
Solution
Step 1: Understand DataFrame parameters for rows and columns
Use columns= to name columns and index= to name rows.
Step 2: Check each option
pd.DataFrame(arr, columns=['Height', 'Weight'], index=['Alice', 'Bob', 'Charlie']) correctly uses columns=['Height', 'Weight'] and index=['Alice', 'Bob', 'Charlie']. pd.DataFrame(arr, index=['Height', 'Weight'], columns=['Alice', 'Bob', 'Charlie']) swaps index and columns incorrectly. pd.DataFrame(data=arr, names=['Height', 'Weight'], labels=['Alice', 'Bob', 'Charlie']) uses invalid parameters names and labels. pd.DataFrame(arr, rows=['Alice', 'Bob', 'Charlie'], cols=['Height', 'Weight']) uses non-existent rows and cols parameters.
Final Answer:
pd.DataFrame(arr, columns=['Height', 'Weight'], index=['Alice', 'Bob', 'Charlie']) -> Option A
Quick Check:
Use columns= for columns, index= for rows [OK]
Hint: Use index= for rows, columns= for columns when creating DataFrame [OK]
Common Mistakes:
Swapping index and columns parameters
Using invalid parameter names like rows= or names=
Forgetting to match index length to array rows
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.