Bird
Raised Fist0
Pandasdata~20 mins

str.len() for string length in Pandas - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
String Length Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of str.len() on a pandas Series
What is the output of the following code snippet?
Pandas
import pandas as pd
s = pd.Series(['apple', 'banana', 'cherry', None])
result = s.str.len()
print(result)
A
0    5
1    6
2    6
3    None
dtype: object
B
0    5
1    6
2    6
3    0
dtype: int64
C
0    5.0
1    6.0
2    6.0
3    NaN
dtype: float64
D
0    5
1    6
2    6
3    NaN
dtype: float64
Attempts:
2 left
💡 Hint
Remember that missing values in pandas string operations usually result in NaN, not zero or None.
❓ data_output
intermediate
1:30remaining
Count of strings with length greater than 4
Given the Series below, what is the count of strings with length greater than 4?
Pandas
import pandas as pd
s = pd.Series(['dog', 'elephant', 'cat', 'lion', 'tiger', None])
count = (s.str.len() > 4).sum()
print(count)
A2
B3
C4
D5
Attempts:
2 left
💡 Hint
Check which strings have length more than 4 and remember None values are ignored in comparison.
❓ visualization
advanced
2:00remaining
Plot string length distribution
You have a pandas Series of strings. Which code snippet correctly plots a histogram of string lengths?
Pandas
import pandas as pd
import matplotlib.pyplot as plt
s = pd.Series(['red', 'blue', 'green', 'yellow', 'purple', 'orange'])
# Fill in the missing code to plot histogram of string lengths
A
plt.hist(s.str.length())
plt.show()
B
plt.hist(s.len())
plt.show()
C
plt.hist(len(s))
plt.show()
D
plt.hist(s.str.len())
plt.show()
Attempts:
2 left
💡 Hint
Use the pandas string accessor to get lengths before plotting.
🔧 Debug
advanced
1:30remaining
Identify the error in string length calculation
What error will the following code raise?
Pandas
import pandas as pd
s = pd.Series(['a', 'bb', 'ccc'])
lengths = s.len()
print(lengths)
AAttributeError: 'Series' object has no attribute 'len'
BTypeError: 'Series' object is not callable
CNo error, prints lengths
DValueError: Length mismatch
Attempts:
2 left
💡 Hint
Check if 'len' is a direct method of Series or accessed differently.
🚀 Application
expert
2:30remaining
Filter DataFrame rows by string length in a column
Given a DataFrame df with a column 'Name', which code correctly filters rows where the 'Name' length is exactly 5 characters?
Pandas
import pandas as pd
df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve']})
# Fill in the code to filter rows with Name length 5
A
filtered = df[df['Name'].apply(len) == 5]
print(filtered)
B
filtered = df[df['Name'].str.len() == 5]
print(filtered)
C
filtered = df[df['Name'].len() == 5]
print(filtered)
D
filtered = df[df['Name'].str.length() == 5]
print(filtered)
Attempts:
2 left
💡 Hint
Use the pandas string accessor for vectorized string length operations.

Practice

(1/5)
1. What does the pandas method str.len() do when applied to a Series of strings?
easy
A. It returns the length of each string in the Series.
B. It counts the number of words in each string.
C. It converts all strings to lowercase.
D. It removes spaces from each string.

Solution

  1. Step 1: Understand the method purpose

    The str.len() method is designed to count characters in each string element of a pandas Series.
  2. Step 2: Compare with other options

    Counting words, converting case, or removing spaces are different string operations, not what str.len() does.
  3. Final Answer:

    It returns the length of each string in the Series. -> Option A
  4. Quick Check:

    str.len() = length count [OK]
Hint: Remember: str.len() counts characters, not words or changes text [OK]
Common Mistakes:
  • Confusing length with word count
  • Thinking it changes string case
  • Assuming it removes spaces
2. Which of the following is the correct syntax to get the length of each string in a pandas Series named names?
easy
A. names.str.length()
B. names.len()
C. len(names)
D. names.str.len()

Solution

  1. Step 1: Recall pandas string accessor usage

    To use string methods on a Series, you must use the .str accessor followed by the method name.
  2. Step 2: Identify the correct method name

    The method to get string length is len(), so the correct syntax is names.str.len().
  3. Final Answer:

    names.str.len() -> Option D
  4. Quick Check:

    Use .str.len() on Series for string lengths [OK]
Hint: Use .str before string methods on Series [OK]
Common Mistakes:
  • Calling len() directly on Series
  • Using .len() without .str
  • Using incorrect method name like .length()
3. Given the pandas Series data = pd.Series(['apple', 'banana', '', None]), what is the output of data.str.len()?
medium
A. [5, 6, 0, 0]
B. [5, 6, NaN, 0]
C. [5, 6, 0, NaN]
D. [5, 6, 1, NaN]

Solution

  1. Step 1: Calculate length for each string

    'apple' has 5 characters, 'banana' has 6, '' is empty so length 0, and None is missing so length is NaN.
  2. Step 2: Understand handling of None values

    pandas returns NaN for None or missing values when using str.len().
  3. Final Answer:

    [5, 6, 0, NaN] -> Option C
  4. Quick Check:

    Empty string = 0, None = NaN in str.len() [OK]
Hint: Empty string length is 0; None becomes NaN [OK]
Common Mistakes:
  • Counting None as 0 instead of NaN
  • Assuming empty string length is NaN
  • Mixing order of output values
4. What is wrong with this code snippet?
import pandas as pd
data = pd.Series(['cat', 'dog', 'bird'])
lengths = data.len()
medium
A. The method len() should be called as data.str.len()
B. The Series object does not support len() method
C. The code is correct and will run without errors
D. You must import numpy to use len() on Series

Solution

  1. Step 1: Identify method usage on Series

    The len() function is a Python built-in and cannot be called directly on a pandas Series to get string lengths.
  2. Step 2: Correct method to get string lengths

    To get length of strings in a Series, use data.str.len() instead of data.len().
  3. Final Answer:

    The method len() should be called as data.str.len() -> Option A
  4. Quick Check:

    Use .str.len() for string lengths on Series [OK]
Hint: Use .str before string methods on Series [OK]
Common Mistakes:
  • Calling len() directly on Series
  • Forgetting .str accessor
  • Assuming Series has len() method for strings
5. You have a pandas DataFrame df with a column 'comments' containing text data. You want to create a new column 'length' that stores the length of each comment, but some comments are missing (NaN). Which code correctly creates the 'length' column with lengths and keeps NaN for missing comments?
hard
A. df['length'] = df['comments'].apply(len)
B. df['length'] = df['comments'].str.len()
C. df['length'] = df['comments'].map(len)
D. df['length'] = df['comments'].fillna('').str.len()

Solution

  1. Step 1: Understand handling of missing values

    The str.len() method returns NaN for missing values, preserving them in the new column.
  2. Step 2: Compare with other options

    Using apply(len) or map(len) will cause errors on NaN values because Python's len() cannot handle None/NaN. Filling NaN with empty string changes missing data to length 0, which is incorrect.
  3. Final Answer:

    df['length'] = df['comments'].str.len() -> Option B
  4. Quick Check:

    str.len() keeps NaN for missing data [OK]
Hint: Use str.len() to keep NaN for missing strings [OK]
Common Mistakes:
  • Using apply(len) causing errors on NaN
  • Replacing NaN with empty string losing missing info
  • Using map(len) without handling NaN
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