📖 Scenario: You work as a data analyst. You have a small dataset about sales of different products. You want to understand how much memory this data uses in your computer. This helps you learn about data size and efficiency.
🎯 Goal: You will create a pandas DataFrame with sales data, then check its memory usage. Finally, you will print the memory usage in bytes.
📋 What You'll Learn
Create a pandas DataFrame with exact data given
Use pandas method to find memory usage of the DataFrame
Print the memory usage value
💡 Why This Matters
🌍 Real World
Data scientists often check memory usage to optimize data storage and processing speed, especially with large datasets.
💼 Career
Understanding memory usage helps data analysts and scientists write efficient code and manage resources well in real projects.
Progress0 / 4 steps
1
Create the sales DataFrame
Import pandas as pd. Create a DataFrame called sales with these exact columns and values: 'Product' with ['Pen', 'Notebook', 'Eraser'], 'Units' with [10, 5, 8], and 'Price' with [1.5, 3.0, 0.5].
Pandas
Hint
Use pd.DataFrame with a dictionary where keys are column names and values are lists of data.
2
Set up memory usage variable
Create a variable called mem_usage and set it to the memory usage of the sales DataFrame by using the memory_usage() method with deep=True and then summing the result.
Pandas
Hint
Use sales.memory_usage(deep=True) to get memory per column, then .sum() to add them.
3
Calculate total memory usage
Use the variable mem_usage to hold the total memory usage in bytes of the sales DataFrame by summing the memory usage of all columns with deep=True.
Pandas
Hint
This step repeats the calculation to reinforce the concept. Make sure you use deep=True and .sum().
4
Print the memory usage
Print the value of mem_usage to show the total memory usage in bytes of the sales DataFrame.
Pandas
Hint
Use print(mem_usage) to display the memory usage.
Practice
(1/5)
1. What does the memory_usage() function in pandas primarily show?
easy
A. The amount of memory used by each column and the index in a DataFrame
B. The total number of rows in a DataFrame
C. The data types of each column in a DataFrame
D. The number of missing values in each column
Solution
Step 1: Understand the purpose of memory_usage()
This function reports memory consumption of each column and the index in a pandas DataFrame.
Step 2: Compare with other options
Options A, B, and D describe different DataFrame properties unrelated to memory usage.
Final Answer:
The amount of memory used by each column and the index in a DataFrame -> Option A
Quick Check:
memory_usage() = memory per column and index [OK]
Hint: memory_usage() shows memory per column and index [OK]
Common Mistakes:
Confusing memory_usage() with shape or info()
Thinking it shows data types or missing values
Ignoring that it includes index memory
2. Which of the following is the correct syntax to get detailed memory usage of a DataFrame df including object types?
easy
A. df.memory_usage()
B. df.memory_usage(True)
C. df.memory_usage(deep=True)
D. df.memory_usage(deep=False)
Solution
Step 1: Recall the parameter for detailed memory info
The deep=True argument tells pandas to include full memory usage for object columns.
Step 2: Check syntax correctness
df.memory_usage(deep=True) uses the correct keyword argument deep=True. df.memory_usage(True) uses positional argument incorrectly. Options A, B, and C do not provide detailed memory info.
Final Answer:
df.memory_usage(deep=True) -> Option C
Quick Check:
Use deep=True for detailed memory [OK]
Hint: Use deep=True to get full memory info on objects [OK]
Common Mistakes:
Passing True without keyword (positional argument error)
Not using deep=True and missing object memory
Using deep=False which is default and less detailed
What will be the output type of print(df.memory_usage(deep=True))?
medium
A. A pandas Series showing memory usage per column and index
B. A single integer showing total memory usage
C. A dictionary with column names as keys and memory usage as values
D. A DataFrame with memory usage details
Solution
Step 1: Understand the return type of memory_usage()
The memory_usage() method returns a pandas Series with index as column names plus the index, and values as memory usage in bytes.
Step 2: Check the code output type
Since deep=True is used, it includes detailed memory for object columns but still returns a Series, not a dict or DataFrame.
Final Answer:
A pandas Series showing memory usage per column and index -> Option A
Quick Check:
memory_usage() returns Series [OK]
Hint: memory_usage() returns Series with memory per column [OK]
Common Mistakes:
Expecting total memory as single integer
Thinking it returns a dictionary or DataFrame
Confusing output type with other pandas methods
4. You run df.memory_usage(deep=True) but get an error: TypeError: memory_usage() got an unexpected keyword argument 'deep'. What is the likely cause?
medium
A. You forgot to import pandas as pd
B. You are using an older pandas version that does not support the 'deep' argument
C. You passed 'deep' as a positional argument instead of keyword
D. The DataFrame is empty
Solution
Step 1: Analyze the error message
The error says 'unexpected keyword argument deep', meaning the function does not recognize 'deep'.
Step 2: Identify cause based on pandas version
Older pandas versions did not support the 'deep' argument in memory_usage(). This is the most common cause.
Final Answer:
You are using an older pandas version that does not support the 'deep' argument -> Option B
Quick Check:
Old pandas versions lack deep argument [OK]
Hint: Check pandas version if 'deep' argument causes error [OK]
Common Mistakes:
Assuming import error causes this
Thinking positional argument fixes it
Blaming empty DataFrame for this error
5. You have a large DataFrame with many object columns. You want to reduce memory usage by converting some columns to categorical type. Which approach helps you analyze memory before and after conversion?
hard
A. Use df.memory_usage() without deep argument before conversion
B. Use df.info() only after conversion
C. Use df.describe() before conversion
D. Use df.memory_usage(deep=True) before and after converting columns to 'category' dtype
Solution
Step 1: Understand memory usage measurement
Using memory_usage(deep=True) gives detailed memory info including object columns, which is important before conversion.
Step 2: Compare memory before and after conversion
By running this method before and after converting columns to 'category', you can see the memory savings clearly.
Final Answer:
Use df.memory_usage(deep=True) before and after converting columns to 'category' dtype -> Option D