📖 Scenario: You work in a small bookstore. You have a list of book sales for the week stored as a pandas Series. You want to find out how many copies of certain books were sold by selecting data from this Series.
🎯 Goal: Learn how to create a pandas Series and select data from it using indexing and labels.
📋 What You'll Learn
Create a pandas Series with given book sales data
Create a list of book titles to select
Select sales data for those books from the Series
Print the selected sales data
💡 Why This Matters
🌍 Real World
Selecting specific data from a dataset is common in sales analysis, inventory management, and reporting.
💼 Career
Data analysts and scientists often need to filter and select data from Series or DataFrames to answer business questions.
Progress0 / 4 steps
1
Create the book sales Series
Import pandas as pd and create a Series called book_sales with these exact entries: 'Python Basics': 120, 'Data Science 101': 85, 'Machine Learning': 95, 'Deep Learning': 60, 'AI for Everyone': 75. Use the book titles as the index.
Data Analysis Python
Hint
Use pd.Series() with a list of sales numbers and an index list of book titles.
2
Create a list of books to select
Create a list called selected_books with these exact book titles: 'Python Basics', 'Deep Learning', and 'AI for Everyone'.
Data Analysis Python
Hint
Use square brackets to create a list with the exact book titles.
3
Select sales data for chosen books
Use the selected_books list to select the sales data from book_sales and store it in a new variable called selected_sales.
Data Analysis Python
Hint
Use square brackets with selected_books to select from book_sales.
4
Print the selected sales data
Print the selected_sales variable to see the sales numbers for the chosen books.
Data Analysis Python
Hint
Use print(selected_sales) to display the selected sales.
Practice
(1/5)
1. What does series['a'] do in a pandas Series with index labels?
easy
A. Returns a slice from start to label 'a'
B. Selects the value at label 'a' in the Series
C. Selects the value at position 0 in the Series
D. Raises an error because 'a' is not a position
Solution
Step 1: Understand label-based indexing
Using series['a'] accesses the value at the index label 'a', not position.
Step 2: Differentiate label vs position
Label 'a' is a named index, so it returns the value at that label.
Final Answer:
Selects the value at label 'a' in the Series -> Option B
Quick Check:
Label indexing = value at label [OK]
Hint: Use labels inside quotes to get values by label [OK]
Common Mistakes:
Confusing label with position indexing
Thinking 'a' is a position index
Expecting a slice instead of single value
2. Which of these is the correct syntax to select multiple labels 'a' and 'c' from a Series named ser?
easy
A. ser.loc[['a', 'c']]
B. ser['a', 'c']
C. ser.loc['a', 'c']
D. ser.iloc[['a', 'c']]
Solution
Step 1: Understand selection of multiple labels
To select multiple labels, use loc with a list of labels inside double brackets.
Step 2: Check syntax correctness
ser.loc[['a', 'c']] is correct; distractors B and C use tuples (KeyError), D uses iloc which expects positions (TypeError).
Final Answer:
ser.loc[['a', 'c']] -> Option A
Quick Check:
Use loc with list for multiple labels [OK]
Hint: Use ser.loc[[labels]] to select multiple labels [OK]
Common Mistakes:
Using single brackets for multiple labels
Omitting loc when selecting multiple labels
Passing labels as separate arguments instead of a list
3. Given the Series:
import pandas as pd
ser = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(ser['b':'d'])
What is the output?
medium
A. b 20
c 30
d 40
dtype: int64
B. b 20
c 30
dtype: int64
C. 20
30
40
D. 20
30
Solution
Step 1: Understand label slicing in Series
Label slicing with ser['b':'d'] includes both start and end labels.
Step 2: Identify values for labels 'b' to 'd'
Labels 'b', 'c', and 'd' correspond to values 20, 30, and 40 respectively.
Final Answer:
b 20
c 30
d 40
dtype: int64 -> Option A
Quick Check:
Label slice includes end label [OK]
Hint: Label slices include the end label [OK]
Common Mistakes:
Excluding the end label in slice
Confusing label slicing with position slicing
Expecting only values without index labels
4. What is wrong with this code snippet?
import pandas as pd
ser = pd.Series([1, 2, 3], index=['x', 'y', 'z'])
print(ser[1:2])
Why might this cause confusion?
medium
A. It raises a KeyError because 1 and 3 are not labels
B. It returns a single value instead of a slice
C. It returns values for labels 'y' and 'z' inclusive
D. It slices by position, excluding index label 'z'
Solution
Step 1: Understand position slicing in Series
Using ser[1:2] slices by position, not label, and excludes the end position.
Step 2: Identify slice range and output
Position 1 (inclusive) to 2 (exclusive) corresponds to label 'y' (position 1), excluding position 2 ('z').
Final Answer:
It slices by position, excluding index label 'z' -> Option D
Quick Check:
Position slices exclude end position [OK]
Hint: Position slices exclude the end index [OK]
Common Mistakes:
Expecting label slicing with integer slice
Thinking slice includes end position
Confusing KeyError with slicing behavior
5. You have a Series ser with index labels ['a', 'b', 'c', 'd', 'e'] and values [5, 10, 15, 20, 25]. How do you select all values greater than 10 using Series indexing and selection?
hard
A. ser[ser.index > 10]
B. ser.index[ser > 10]
C. ser[ser > 10]
D. ser.loc[ser.index > 10]
Solution
Step 1: Use boolean indexing on Series values
Comparing ser > 10 creates a boolean mask for values greater than 10.
Step 2: Apply boolean mask to Series
Using ser[ser > 10] selects values where the mask is True.
Final Answer:
ser[ser > 10] -> Option C
Quick Check:
Boolean mask on values selects correct subset [OK]
Hint: Use ser[ser > value] to filter by value condition [OK]
Common Mistakes:
Trying to filter by index values instead of data values
Using loc with boolean mask on index instead of values
Confusing index labels with values in condition
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.