📖 Scenario: Imagine you work at a small company that collects sales data from different stores. Each store sends data in a slightly different format. You need to read this data and combine it to understand total sales.
🎯 Goal: You will create a simple program that reads sales data from a dictionary, uses a flexible input/output approach to filter sales above a certain amount, and then prints the filtered results. This shows how flexible I/O helps handle real-world data variations.
📋 What You'll Learn
Create a dictionary with store names as keys and sales amounts as values
Create a variable to set a sales threshold
Use a dictionary comprehension to filter stores with sales above the threshold
Print the filtered dictionary
💡 Why This Matters
🌍 Real World
Companies often get data from many sources with different formats and values. Flexible input/output methods like filtering with conditions help clean and analyze this data easily.
💼 Career
Data analysts and scientists use flexible data handling to prepare and explore real-world data before making decisions or building models.
Progress0 / 4 steps
1
Create the sales data dictionary
Create a dictionary called store_sales with these exact entries: 'StoreA': 1500, 'StoreB': 900, 'StoreC': 1200, 'StoreD': 700
Data Analysis Python
Hint
Use curly braces {} to create a dictionary with keys as store names and values as sales numbers.
2
Set the sales threshold
Create a variable called sales_threshold and set it to 1000
Data Analysis Python
Hint
Just assign the number 1000 to the variable sales_threshold.
3
Filter stores with sales above the threshold
Use a dictionary comprehension to create a new dictionary called filtered_sales that includes only stores from store_sales with sales greater than sales_threshold
Data Analysis Python
Hint
Use {store: sales for store, sales in store_sales.items() if sales > sales_threshold} to filter the dictionary.
4
Print the filtered sales dictionary
Print the filtered_sales dictionary to display the stores with sales above the threshold
Data Analysis Python
Hint
Use print(filtered_sales) to show the filtered dictionary.
Practice
(1/5)
1. Why is flexible input/output (I/O) important when working with real-world data?
easy
A. Because flexible I/O makes data always clean and error-free
B. Because real-world data comes in many formats and flexible I/O can handle them all
C. Because flexible I/O only works with CSV files
D. Because flexible I/O slows down data processing
Solution
Step 1: Understand real-world data formats
Real-world data can be CSV, Excel, JSON, or others, so we need tools that can read many types.
Step 2: Role of flexible I/O
Flexible I/O means using functions that can read and write different formats easily, like pandas' read_csv or to_excel.
Final Answer:
Because real-world data comes in many formats and flexible I/O can handle them all -> Option B
Quick Check:
Flexible I/O = handles many formats [OK]
Hint: Real data varies; flexible I/O reads many formats [OK]
Common Mistakes:
Thinking flexible I/O only works with one file type
Assuming flexible I/O cleans data automatically
Believing flexible I/O slows down processing
2. Which of the following is the correct way to read a CSV file using pandas in Python?
easy
A. pd.read_csv('data.csv')
B. pd.readExcel('data.csv')
C. pd.load_csv('data.csv')
D. pd.open_csv('data.csv')
Solution
Step 1: Recall pandas CSV reading function
The correct pandas function to read CSV files is read_csv.
Step 2: Check syntax correctness
pd.read_csv('data.csv') is the correct syntax; others are invalid or do not exist.
Final Answer:
pd.read_csv('data.csv') -> Option A
Quick Check:
pandas CSV read = read_csv [OK]
Hint: Use pd.read_csv() to read CSV files [OK]
Common Mistakes:
Using incorrect function names like readExcel or load_csv
Confusing read_csv with open or load functions
Missing the 'pd.' prefix for pandas
3. What will be the output of this code snippet?
import pandas as pd
from io import StringIO
csv_data = 'name,age\nAlice,30\nBob,25'
data = pd.read_csv(StringIO(csv_data))
print(data['age'].tolist())
medium
A. ["Alice", "Bob"]
B. ['30', '25']
C. Error: StringIO not supported
D. [30, 25]
Solution
Step 1: Understand StringIO usage
StringIO allows reading CSV data from a string as if it were a file.
Step 2: Check data reading and output
pd.read_csv reads the CSV string into a DataFrame; data['age'] column contains integers 30 and 25; .tolist() converts it to a list.
Final Answer:
[30, 25] -> Option D
Quick Check:
CSV string to list of ages = [30, 25] [OK]
Hint: StringIO reads string as file; ages are integers [OK]
Common Mistakes:
Expecting strings instead of integers in the list
Thinking StringIO is unsupported
Confusing column names with values
4. Identify the error in this code that tries to save a DataFrame to Excel:
to_excel() expects an Excel file extension like .xlsx, not .csv.
Step 2: Understand file format mismatch
Saving with .csv extension causes confusion; .csv is for comma-separated files, not Excel format.
Final Answer:
File extension should be .xlsx, not .csv -> Option A
Quick Check:
to_excel needs .xlsx extension [OK]
Hint: Use .xlsx extension with to_excel() [OK]
Common Mistakes:
Using .csv extension with to_excel()
Thinking to_excel() cannot save DataFrames
Assuming missing imports cause error
5. You have a JSON file with nested data and want to convert it into a flat pandas DataFrame. Which approach best uses flexible I/O to handle this real-world data?
hard
A. Use pandas.read_csv() directly on the JSON file
B. Manually open the JSON file and parse it line by line without pandas
C. Use pandas.read_json() with the 'lines=True' parameter and then normalize nested fields
D. Convert JSON to Excel first, then read with pandas.read_excel()
Solution
Step 1: Understand JSON reading in pandas
pandas.read_json() can read JSON files; 'lines=True' helps with line-delimited JSON.
Step 2: Flatten nested JSON data
After reading, pandas.json_normalize() can flatten nested fields into columns for easy analysis.
Final Answer:
Use pandas.read_json() with the 'lines=True' parameter and then normalize nested fields -> Option C
Quick Check:
read_json + normalize = best for nested JSON [OK]
Hint: Use read_json with normalization for nested data [OK]
Common Mistakes:
Trying to read JSON with read_csv()
Ignoring nested structure flattening
Converting formats unnecessarily
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.