📖 Scenario: You work in a store's data team. The product names in the sales data have extra spaces at the start or end. This makes it hard to analyze the data correctly.
🎯 Goal: You will clean the product names by removing extra spaces using str.strip() in pandas.
📋 What You'll Learn
Create a pandas DataFrame with product names including extra spaces
Create a variable to hold the column name 'Product'
Use str.strip() on the product names to remove spaces
Print the cleaned product names column
💡 Why This Matters
🌍 Real World
Cleaning text data is a common task in data science to prepare data for analysis or machine learning. Extra spaces can cause errors or wrong results.
💼 Career
Data scientists and analysts often clean messy data like product names, customer info, or survey answers before working with it.
Progress0 / 4 steps
1
Create the sales DataFrame with product names
Create a pandas DataFrame called sales with one column named 'Product'. The column should have these exact values with spaces: ' Apple', 'Banana ', ' Cherry ', 'Date'.
Pandas
Hint
Use pd.DataFrame with a dictionary. The key is 'Product' and the value is the list of product names with spaces.
2
Create a variable for the product column name
Create a variable called product_col and set it to the string 'Product'.
Pandas
Hint
Just assign the string 'Product' to the variable product_col.
3
Remove extra spaces from product names using str.strip()
Use str.strip() on the sales[product_col] column to remove spaces at the start and end. Save the cleaned names back to sales[product_col].
Pandas
Hint
Use sales[product_col].str.strip() to remove spaces and assign it back to sales[product_col].
4
Print the cleaned product names
Print the sales[product_col] column to show the cleaned product names without extra spaces.
Pandas
Hint
Use print(sales[product_col]) to display the cleaned product names.
Practice
(1/5)
1. What does the pandas str.strip() method do when applied to a Series of strings?
easy
A. Removes spaces from the start and end of each string
B. Removes all spaces inside each string
C. Converts all characters to uppercase
D. Splits strings into lists of words
Solution
Step 1: Understand the purpose of str.strip()
This method removes whitespace characters only from the beginning and end of each string in the Series.
Step 2: Differentiate from other string methods
Unlike str.replace() or str.upper(), it does not change spaces inside the string or letter cases.
Final Answer:
Removes spaces from the start and end of each string -> Option A
Quick Check:
str.strip() removes edge spaces [OK]
Hint: Remember: strip trims only start/end spaces, not inside [OK]
Common Mistakes:
Thinking it removes spaces inside the string
Confusing with uppercasing or splitting
Assuming it removes all whitespace characters everywhere
2. Which of the following is the correct syntax to remove leading and trailing spaces from a pandas Series named data?
easy
A. data.strip()
B. data.strip.str()
C. data.str.strip()
D. strip(data)
Solution
Step 1: Recall pandas string accessor usage
To use string methods on a Series, you must use the .str accessor before the method.
Step 2: Identify correct method call
The correct syntax is data.str.strip(). Other options either miss the accessor or have wrong order.
Final Answer:
data.str.strip() -> Option C
Quick Check:
Use .str before string methods [OK]
Hint: Use .str before string methods on Series [OK]
Common Mistakes:
Calling strip() directly on Series without .str
Using wrong order like .strip.str()
Trying to call strip as a standalone function
3. Given the pandas Series:
import pandas as pd
data = pd.Series([' apple ', 'banana ', ' cherry'])
cleaned = data.str.strip()
What is the output of print(cleaned.tolist())?
medium
A. [' apple', 'banana ', ' cherry']
B. ['apple', 'banana', 'cherry']
C. ['apple ', ' banana', 'cherry']
D. ['apple', ' banana ', 'cherry']
Solution
Step 1: Understand what str.strip() does on each string
It removes spaces from the start and end of each string, so ' apple ' becomes 'apple', 'banana ' becomes 'banana', and ' cherry' becomes 'cherry'.
Step 2: Convert the cleaned Series to a list
Using tolist() shows the cleaned strings without leading or trailing spaces.
Final Answer:
['apple', 'banana', 'cherry'] -> Option B
Quick Check:
strip removes edge spaces, output clean list [OK]
Hint: strip removes spaces only at string edges [OK]
Common Mistakes:
Expecting spaces inside strings to be removed
Confusing strip with replace or split
Not converting Series to list before printing
4. You run this code:
import pandas as pd
s = pd.Series([' dog', 'cat ', ' bird '])
s_clean = s.strip()
But get an error. What is the problem?
medium
A. You should use s.str.strip() instead of s.strip()
B. You forgot to import pandas
C. The Series contains numbers, so strip won't work
D. strip() does not remove spaces
Solution
Step 1: Identify the error cause
Calling strip() directly on a pandas Series causes an AttributeError because Series objects do not have a direct strip() method.
Step 2: Correct method usage
Use the string accessor .str to apply string methods on Series: s.str.strip().
Final Answer:
You should use s.str.strip() instead of s.strip() -> Option A
Quick Check:
Use .str before string methods on Series [OK]
Hint: Always use .str before string methods on Series [OK]
Common Mistakes:
Calling strip() directly on Series
Assuming strip works on non-string data
Ignoring error messages about missing method
5. You have a DataFrame df with a column 'Name' containing names with extra spaces:
import pandas as pd
df = pd.DataFrame({'Name': [' Mary Ann ', 'Bob', ' Charlie ', 'David ']})
How do you clean the 'Name' column to remove spaces only at the start and end, keeping spaces inside names intact?
hard
A. df['Name'] = df['Name'].lstrip().str.rstrip()
B. df['Name'] = df['Name'].str.replace(' ', '')
C. df['Name'] = df['Name'].strip(' ')
D. df['Name'] = df['Name'].str.strip()
Solution
Step 1: Understand the goal
We want to remove only spaces at the start and end of each string, not spaces inside the names (e.g., keep 'Mary Ann' intact).
Step 2: Choose the correct method
str.strip() removes leading and trailing whitespace. df['Name'] = df['Name'].str.strip() uses it correctly. df['Name'] = df['Name'].lstrip().str.rstrip() fails with AttributeError (no .str before lstrip()). df['Name'] = df['Name'].str.replace(' ', '') removes all spaces (e.g., 'MaryAnn'). df['Name'] = df['Name'].strip(' ') fails (no .str accessor).
Final Answer:
df['Name'] = df['Name'].str.strip() -> Option D
Quick Check:
Use str.strip() to clean edges only [OK]
Hint: Use str.strip() to clean edges, not inside spaces [OK]
Common Mistakes:
Using str.replace(' ', '') removes all spaces, including inside names
Forgetting .str accessor before lstrip() when chaining methods
Calling strip() directly on Series without .str accessor
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.