📖 Scenario: You work in a small shop and want to organize your sales data. You have sales numbers and product names in simple lists and dictionaries. You want to turn these into a pandas.Series to analyze them easily.
🎯 Goal: Create pandas.Series from a list and a dictionary. Learn how to set custom indexes and see the data clearly.
📋 What You'll Learn
Use pandas.Series to create series from lists and dictionaries
Set custom index labels for the series
Print the series to see the output
💡 Why This Matters
🌍 Real World
Organizing sales data in a Series helps you quickly analyze monthly sales or product sales in a simple, readable format.
💼 Career
Data analysts and scientists often convert raw data from lists or dictionaries into Series for easy data manipulation and analysis.
Progress0 / 4 steps
1
Create a list of sales numbers
Create a list called sales with these exact numbers: 100, 200, 300, 400, 500.
Data Analysis Python
Hint
Use square brackets [] to create a list with the numbers separated by commas.
2
Create a Series from the sales list with custom index
Import pandas as pd. Then create a pandas.Series called sales_series from the list sales. Use the index labels 'Jan', 'Feb', 'Mar', 'Apr', 'May' for the series.
Data Analysis Python
Hint
Use pd.Series(data, index=[...]) to create the series with custom index labels.
3
Create a dictionary of product sales
Create a dictionary called product_sales with these exact entries: 'apple': 50, 'banana': 75, 'orange': 100.
Data Analysis Python
Hint
Use curly braces {} to create a dictionary with key-value pairs separated by colons.
4
Create a Series from the product_sales dictionary and print both series
Create a pandas.Series called product_series from the dictionary product_sales. Then print both sales_series and product_series.
Data Analysis Python
Hint
Use pd.Series() with a dictionary to create the series. Use print() to show the series.
Practice
(1/5)
1. What does a pandas Series store besides the data itself?
easy
A. Multiple columns like a DataFrame
B. Labels (index) for each data element
C. Only numeric values
D. No labels, just raw data
Solution
Step 1: Understand what a Series is
A Series is like a list but with labels for each element.
Step 2: Identify what is stored besides data
Besides the data values, a Series stores labels called an index.
Final Answer:
Labels (index) for each data element -> Option B
Quick Check:
Series stores data + labels [OK]
Hint: Remember: Series = data + labels (index) [OK]
Common Mistakes:
Thinking Series stores multiple columns like DataFrame
Assuming Series only stores numeric data
Believing Series has no labels
2. Which of the following is the correct way to create a pandas Series from a list [10, 20, 30] with labels ['a', 'b', 'c']?
easy
A. pd.Series([10, 20, 30], labels=['a', 'b', 'c'])
B. pd.Series(index=[10, 20, 30], data=['a', 'b', 'c'])
C. pd.Series({'a':10, 'b':20, 'c':30})
D. pd.Series([10, 20, 30], index=['a', 'b', 'c'])
Solution
Step 1: Recall Series creation syntax from list
Use pd.Series(data_list, index=labels_list) to assign labels.
Step 2: Check each option
pd.Series([10, 20, 30], index=['a', 'b', 'c']) uses correct syntax: data first, then index labels. Others misuse parameters or use wrong keywords.
Final Answer:
pd.Series([10, 20, 30], index=['a', 'b', 'c']) -> Option D
Quick Check:
Correct syntax uses index= for labels [OK]
Hint: Use index= to assign labels when creating Series from list [OK]
Common Mistakes:
Using labels= instead of index=
Swapping data and index parameters
Passing dict instead of list for this question
3. What will be the output of this code?
import pandas as pd
s = pd.Series({'x': 5, 'y': 10, 'z': 15})
print(s['y'])
medium
A. 10
B. 'y'
C. KeyError
D. 5
Solution
Step 1: Understand Series creation from dict
Keys become labels, values become data. So 'y' label has value 10.
Step 2: Access value by label 'y'
Using s['y'] returns the value 10 stored at label 'y'.
Final Answer:
10 -> Option A
Quick Check:
Dict keys = labels, s['y'] = 10 [OK]
Hint: Dict keys become labels; access by label returns value [OK]
Common Mistakes:
Expecting s['y'] to return the label 'y'
Confusing keys and values
Thinking it raises KeyError
4. Identify the error in this code snippet:
import pandas as pd
s = pd.Series([1, 2, 3], index=['a', 'b'])
medium
A. No error, code runs fine
B. Data must be a dictionary, not a list
C. Index length does not match data length
D. pd.Series cannot take index parameter
Solution
Step 1: Check lengths of data and index
Data has 3 elements, index has 2 labels. They must be equal length.
Step 2: Understand pandas behavior
Mismatch causes ValueError: Length of passed values does not match index.
Final Answer:
Index length does not match data length -> Option C
Quick Check:
Data and index lengths must match [OK]
Hint: Data and index must have same length [OK]
Common Mistakes:
Assuming list data must be dict
Thinking index parameter is invalid
Ignoring length mismatch error
5. You have a dictionary {'a': 1, 'b': 0, 'c': 3, 'd': None}. You want to create a Series that only includes keys with truthy values (non-zero, non-None). Which code correctly creates this filtered Series?
hard
A. pd.Series({k: v for k, v in {'a':1, 'b':0, 'c':3, 'd':None}.items() if v})
B. pd.Series({'a':1, 'b':0, 'c':3, 'd':None}).dropna()
C. pd.Series({'a':1, 'b':0, 'c':3, 'd':None}).fillna(0)
D. pd.Series({'a':1, 'b':0, 'c':3, 'd':None})
Solution
Step 1: Understand filtering for truthy values
Truthy means values that are not 0, None, False, or empty.
Step 2: Check each option's effect
pd.Series({k: v for k, v in {'a':1, 'b':0, 'c':3, 'd':None}.items() if v}) uses dict comprehension to filter out falsy values before creating Series. pd.Series({'a':1, 'b':0, 'c':3, 'd':None}).dropna() only drops None but keeps 0. pd.Series({'a':1, 'b':0, 'c':3, 'd':None}).fillna(0) replaces None with 0, keeping falsy values. pd.Series({'a':1, 'b':0, 'c':3, 'd':None}) includes all values.
Final Answer:
pd.Series({k: v for k, v in {'a':1, 'b':0, 'c':3, 'd':None}.items() if v}) -> Option A
Quick Check:
Filter dict first to exclude falsy values [OK]
Hint: Filter dict with if v before Series creation [OK]
Common Mistakes:
Using dropna() only removes None, not 0
Filling None with 0 keeps falsy values
Not filtering before creating Series
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.