📖 Scenario: You work in a small store that tracks daily sales data. You want to analyze the sales numbers using Python. You will use pandas to organize the data and numpy to perform calculations.
🎯 Goal: Create a pandas DataFrame from a numpy array of sales data, then calculate the average sales using numpy.
📋 What You'll Learn
Create a numpy array with exact sales data
Create a pandas DataFrame from the numpy array
Calculate the average sales using numpy
Print the average sales value
💡 Why This Matters
🌍 Real World
Stores and businesses often collect sales data daily. Using pandas and numpy together helps organize and analyze this data quickly.
💼 Career
Data analysts and scientists use pandas and numpy to clean, organize, and analyze data efficiently in many industries.
Progress0 / 4 steps
1
Create a numpy array with sales data
Create a numpy array called sales_data with these exact values: 100, 150, 200, 130, 170.
Pandas
Hint
Use np.array([...]) to create the array with the exact numbers.
2
Create a pandas DataFrame from the numpy array
Import pandas as pd and create a DataFrame called df from the sales_data numpy array. Name the column 'Sales'.
Pandas
Hint
Use pd.DataFrame() with columns=['Sales'] to name the column.
3
Calculate the average sales using numpy
Create a variable called average_sales and set it to the mean of the 'Sales' column in df using numpy.
Pandas
Hint
Use np.mean() on the DataFrame column df['Sales'].
4
Print the average sales
Write a print statement to display the value of average_sales.
Pandas
Hint
Use print(average_sales) to show the result.
Practice
(1/5)
1. What is the main reason Pandas uses NumPy arrays internally?
easy
A. To handle text data only
B. To make data visualization easier
C. To store data efficiently and allow fast computations
D. To create interactive dashboards
Solution
Step 1: Understand Pandas data storage
Pandas stores data in tables called DataFrames, which need efficient storage for speed.
Step 2: Role of NumPy arrays
NumPy arrays provide fast, memory-efficient storage and operations on numerical data.
Final Answer:
To store data efficiently and allow fast computations -> Option C
Quick Check:
Pandas uses NumPy arrays for efficiency [OK]
Hint: Pandas uses NumPy arrays for speed and memory [OK]
Common Mistakes:
Thinking Pandas uses NumPy only for visualization
Believing Pandas stores data as plain Python lists
Confusing NumPy arrays with text handling
2. Which of the following is the recommended way to convert a Pandas DataFrame df to a NumPy array?
easy
A. np.array(df)
B. df.to_numpy()
C. df.numpy()
D. df.asarray()
Solution
Step 1: Recall Pandas method for conversion
Pandas DataFrames have a method to_numpy() to convert to NumPy arrays.
Step 2: Check other options
np.array(df) works but is not the dedicated Pandas method; df.numpy() and df.asarray() do not exist.
Final Answer:
df.to_numpy() -> Option B
Quick Check:
Use to_numpy() to convert DataFrame [OK]
Hint: Use df.to_numpy() to get NumPy array from DataFrame [OK]
Common Mistakes:
Using non-existent methods like df.numpy()
Confusing np.array(df) as the best method
Trying to use df.asarray() which is invalid
3. Given the code:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
result = np.sum(df)
What is the value of result?
medium
A. array([6, 15])
B. [6 15]
C. 21
D. Error: cannot sum DataFrame with NumPy
Solution
Step 1: Understand np.sum on DataFrame
Applying np.sum to a DataFrame sums each column and returns a NumPy array.
Step 2: Calculate sums of columns
Column 'A' sums to 1+2+3=6, column 'B' sums to 4+5+6=15, so result is array([6, 15]).
Final Answer:
array([6, 15]) -> Option A
Quick Check:
NumPy sums columns into array [OK]
Hint: np.sum on DataFrame sums columns, returns NumPy array [OK]
A. df.values() should be df.values without parentheses
B. You cannot add 1 to a NumPy array
C. DataFrame does not have a values attribute
D. The print statement syntax is incorrect
Solution
Step 1: Check usage of df.values
df.values is an attribute, not a method, so parentheses cause an error.
Step 2: Understand addition to NumPy array
Adding 1 to a NumPy array works element-wise, so no error there.
Final Answer:
df.values() should be df.values without parentheses -> Option A
Quick Check:
Use df.values without () to get NumPy array [OK]
Hint: df.values is attribute, not method; no parentheses [OK]
Common Mistakes:
Calling df.values() as a method
Thinking addition to array is invalid
Assuming print syntax is wrong in Python 3
5. You have a Pandas DataFrame df with numeric columns. You want to apply the NumPy function np.log to all values and get a new DataFrame with the results preserving the original index and column names. Which code correctly does this?
hard
A. new_df = pd.DataFrame(np.log(df))
B. new_df = df.to_numpy().log()
C. new_df = np.log(df)
D. new_df = df.apply(np.log)
Solution
Step 1: Understand applying NumPy functions on DataFrame
Using df.apply(np.log) applies np.log element-wise to each column and returns a DataFrame preserving index and columns.
Step 2: Check other options
np.log(df) returns a NumPy array, not DataFrame; pd.DataFrame(np.log(df)) creates DataFrame but loses original index and column names; df.to_numpy().log() is invalid syntax.
Final Answer:
new_df = df.apply(np.log) -> Option D
Quick Check:
Use df.apply(np.log) for DataFrame output [OK]
Hint: Use df.apply(np.log) to keep DataFrame structure [OK]
Common Mistakes:
Using np.log(df) which returns array, not DataFrame