A Series is a one-dimensional labeled array in pandas that can hold any data type, like numbers or strings. Think of it like a list with labels for each item.
Click to reveal answer
beginner
How do you access string methods on a pandas Series?
You use the .str accessor before the string method. For example, series.str.lower() converts all strings in the Series to lowercase.
Click to reveal answer
beginner
What does series.str.contains('abc') do?
It checks each string in the Series to see if it contains the substring 'abc'. It returns a Series of True or False values.
Click to reveal answer
intermediate
How can you handle missing values when using string methods on a Series?
Most string methods on Series automatically skip missing values (NaN). You can also use na='' or na=False in some methods to control behavior.
Click to reveal answer
beginner
Give an example of using series.str.replace().
If you have a Series with strings and want to replace 'cat' with 'dog', you can use series.str.replace('cat', 'dog'). This changes all 'cat' words to 'dog' in the Series.
Click to reveal answer
Which pandas accessor allows you to use string methods on a Series?
A.s
B.str
C.text
D.string
✗ Incorrect
The correct accessor for string methods on a Series is .str.
What does series.str.upper() do?
ARemoves uppercase letters from strings
BChecks if strings contain uppercase letters
CConverts all strings in the Series to uppercase
DSplits strings at uppercase letters
✗ Incorrect
series.str.upper() converts all strings in the Series to uppercase.
If a Series has missing values (NaN), what happens when you use series.str.len()?
AReturns NaN for missing values
BRaises an error
CIgnores missing values and returns length for others
DReplaces missing values with zero
✗ Incorrect
String methods return NaN for missing values by default.
How do you check if strings in a Series start with 'data'?
Aseries.str.startswith('data')
Bseries.str.contains('data')
Cseries.str.find('data')
Dseries.str.match('data')
✗ Incorrect
series.str.startswith('data') checks if strings start with 'data'.
What does series.str.split(',') return?
AA single string with commas removed
BAn error because split is not supported
CA boolean Series if commas exist
DA Series of lists splitting strings at commas
✗ Incorrect
series.str.split(',') splits each string at commas and returns a Series of lists.
Explain how to use string methods on a pandas Series and give two examples.
Think about how you call string functions on each item in the Series.
You got /3 concepts.
Describe how missing values are handled when applying string methods on a Series.
Consider what happens if a string method meets a NaN value.
You got /3 concepts.
Practice
(1/5)
1. What does the .str.lower() method do when applied to a pandas Series?
easy
A. Converts all characters in each string of the Series to lowercase.
B. Removes all whitespace from each string in the Series.
C. Counts the number of characters in each string of the Series.
D. Replaces all digits in each string with a special character.
Solution
Step 1: Understand the .str accessor
The .str accessor allows string methods to be applied element-wise on a pandas Series.
Step 2: Identify the effect of .lower()
The .lower() method converts all uppercase letters in each string to lowercase.
Final Answer:
Converts all characters in each string of the Series to lowercase. -> Option A
Quick Check:
.str.lower() = lowercase conversion [OK]
Hint: Remember .str.lower() makes all letters small [OK]
Common Mistakes:
Confusing .str.lower() with .str.strip()
Thinking it removes whitespace
Assuming it counts characters
2. Which of the following is the correct syntax to check if each string in a pandas Series names contains the substring 'data'?
easy
A. names.contains(str('data'))
B. names.contains('data')
C. names.str.contains(data)
D. names.str.contains('data')
Solution
Step 1: Recall the correct usage of string methods on Series
String methods must be accessed via the .str accessor on a pandas Series.
Step 2: Check the correct method call syntax
The method .contains() requires the substring as a string argument inside quotes.
Final Answer:
names.str.contains('data') -> Option D
Quick Check:
Use .str.contains('substring') for substring check [OK]
Hint: Always use .str before string methods on Series [OK]
Common Mistakes:
Omitting .str accessor
Passing variable without quotes
Using .contains() directly on Series
3. Given the pandas Series fruits = pd.Series(['Apple', 'banana', 'Cherry', 'date']), what is the output of fruits.str.upper()?
medium
A. ['apple', 'banana', 'cherry', 'date']
B. ['APPLE', 'banana', 'CHERRY', 'DATE']
C. ['APPLE', 'BANANA', 'CHERRY', 'DATE']
D. ['Apple', 'banana', 'Cherry', 'date']
Solution
Step 1: Understand .str.upper() effect on Series
The .str.upper() method converts all characters in each string to uppercase.
Step 2: Apply .str.upper() to each element
Each fruit name is converted fully to uppercase: 'Apple' -> 'APPLE', 'banana' -> 'BANANA', etc.
Final Answer:
['APPLE', 'BANANA', 'CHERRY', 'DATE'] -> Option C
Quick Check:
.str.upper() = all uppercase strings [OK]
Hint: Uppercase method makes all letters capital [OK]
Common Mistakes:
Thinking it only affects first letter
Confusing with .str.capitalize()
Expecting original case unchanged
4. What is wrong with this code snippet?
import pandas as pd
s = pd.Series(['cat', 'dog', 'bird'])
s.str.replace('d', '')
medium
A. It raises a FutureWarning and requires regex=false to avoid it.
B. It works correctly and removes 'd' from each string.
C. It raises a TypeError because 'replace' is not a string method.
By default, .str.replace() treats the first argument as a regex pattern.
Step 2: Identify warning about regex default change
Recent pandas versions raise a FutureWarning suggesting to specify regex=false when replacing literal strings.
Final Answer:
It raises a FutureWarning and requires regex=false to avoid it. -> Option A
Quick Check:
.str.replace() warns about regex=true default [OK]
Hint: Add regex=false to .str.replace() for literal replace [OK]
Common Mistakes:
Ignoring FutureWarning
Assuming no warning occurs
Expecting error instead of warning
5. You have a pandas Series emails = pd.Series(['John.Doe@example.com', 'jane_smith@work.net', 'admin@site.org']). How can you extract the domain names (like 'example.com') from each email using string methods?
hard
A. emails.str.extract('(@.*)')
B. emails.str.split('@').str[1]
C. emails.str.replace('.*@', '')
D. emails.str.slice(start=emails.str.find('@')+1)
Solution
Step 1: Understand the goal to get text after '@'
We want the part of each string after the '@' symbol, which is the domain.
Step 2: Use .str.split('@') and select the second part
Splitting each string by '@' creates a list; index 1 is the domain part.
Final Answer:
emails.str.split('@').str[1] -> Option B
Quick Check:
Split by '@' and take second element [OK]
Hint: Split by '@' and pick index 1 for domain [OK]
Common Mistakes:
Using incorrect regex in .str.extract()
Forgetting to select index after split
Using .str.replace() incorrectly
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.