Bird
Raised Fist0
Data Analysis Pythondata~10 mins

String methods on Series in Data Analysis Python - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to convert all strings in the Series to lowercase.

Data Analysis Python
import pandas as pd

s = pd.Series(['Apple', 'Banana', 'Cherry'])
lower_s = s.str.[1]()
Drag options to blanks, or click blank then click option'
Aupper
Blower
Ccapitalize
Dtitle
Attempts:
3 left
💡 Hint
Common Mistakes
Using str.upper() instead of str.lower()
Forgetting to use the str accessor before the method
2fill in blank
medium

Complete the code to check if each string in the Series contains the letter 'a'.

Data Analysis Python
import pandas as pd

s = pd.Series(['Apple', 'Banana', 'Cherry'])
contains_a = s.str.[1]('a')
Drag options to blanks, or click blank then click option'
Astartswith
Bendswith
Ccontains
Dmatch
Attempts:
3 left
💡 Hint
Common Mistakes
Using str.startswith() or str.endswith() which only check start or end
Using str.match() which expects a regex pattern for full match
3fill in blank
hard

Fix the error in the code to replace all occurrences of 'a' with 'o' in the Series.

Data Analysis Python
import pandas as pd

s = pd.Series(['Apple', 'Banana', 'Cherry'])
replaced = s.str.[1]('a', 'o')
Drag options to blanks, or click blank then click option'
Achange
Bsubstitute
Cswitch
Dreplace
Attempts:
3 left
💡 Hint
Common Mistakes
Using non-existent methods like str.substitute or str.switch
Forgetting to use the str accessor
4fill in blank
hard

Fill both blanks to create a dictionary with words as keys and their lengths as values, only for words longer than 5 characters.

Data Analysis Python
words = ['apple', 'banana', 'cherry', 'date']
lengths = {word: [1] for word in words if [2]
Drag options to blanks, or click blank then click option'
Alen(word)
Blen(word) > 5
Cword.startswith('b')
Dword == 'apple'
Attempts:
3 left
💡 Hint
Common Mistakes
Using word.startswith('b') which filters by first letter
Using word == 'apple' which filters only one word
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase words as keys and their lengths as values, only for words containing 'e'.

Data Analysis Python
words = ['apple', 'banana', 'cherry', 'date']
result = { [1]: [2] for word in words if word.[3]('e') }
Drag options to blanks, or click blank then click option'
Aword.upper()
Blen(word)
Ccontains
Dstartswith
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'startswith' instead of 'contains' for filtering
Not converting words to uppercase for keys

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

  1. Step 1: Understand the .str accessor

    The .str accessor allows string methods to be applied element-wise on a pandas Series.
  2. Step 2: Identify the effect of .lower()

    The .lower() method converts all uppercase letters in each string to lowercase.
  3. Final Answer:

    Converts all characters in each string of the Series to lowercase. -> Option A
  4. 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

  1. Step 1: Recall the correct usage of string methods on Series

    String methods must be accessed via the .str accessor on a pandas Series.
  2. Step 2: Check the correct method call syntax

    The method .contains() requires the substring as a string argument inside quotes.
  3. Final Answer:

    names.str.contains('data') -> Option D
  4. 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

  1. Step 1: Understand .str.upper() effect on Series

    The .str.upper() method converts all characters in each string to uppercase.
  2. Step 2: Apply .str.upper() to each element

    Each fruit name is converted fully to uppercase: 'Apple' -> 'APPLE', 'banana' -> 'BANANA', etc.
  3. Final Answer:

    ['APPLE', 'BANANA', 'CHERRY', 'DATE'] -> Option C
  4. 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.
D. It returns null instead of a Series.

Solution

  1. Step 1: Understand .str.replace() default behavior

    By default, .str.replace() treats the first argument as a regex pattern.
  2. Step 2: Identify warning about regex default change

    Recent pandas versions raise a FutureWarning suggesting to specify regex=false when replacing literal strings.
  3. Final Answer:

    It raises a FutureWarning and requires regex=false to avoid it. -> Option A
  4. 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

  1. Step 1: Understand the goal to get text after '@'

    We want the part of each string after the '@' symbol, which is the domain.
  2. Step 2: Use .str.split('@') and select the second part

    Splitting each string by '@' creates a list; index 1 is the domain part.
  3. Final Answer:

    emails.str.split('@').str[1] -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard