We use string accessor methods to easily work with text data inside tables. They help us clean, search, and change text in columns.
String accessor (.str) methods in Data Analysis Python
df['column_name'].str.method_name(arguments)
The .str lets you use string methods on each item in a column.
It works only on columns with text (strings).
df['name'].str.lower()
df['email'].str.contains('gmail')
df['address'].str.strip()
df['full_name'].str.split(' ')
This code shows how to clean text by removing spaces and changing case, find emails with 'gmail', and split full names into parts.
import pandas as pd data = {'name': ['Alice ', ' Bob', 'CHARLIE'], 'email': ['alice@example.com', 'bob@gmail.com', 'charlie@yahoo.com'], 'full_name': ['Alice Smith', 'Bob Brown', 'Charlie Black']} df = pd.DataFrame(data) # Clean names by stripping spaces and making lowercase clean_names = df['name'].str.strip().str.lower() # Find emails containing 'gmail' gmail_filter = df['email'].str.contains('gmail') # Split full names into first and last split_names = df['full_name'].str.split(' ') print('Clean Names:') print(clean_names) print('\nEmails with gmail:') print(gmail_filter) print('\nSplit Full Names:') print(split_names)
String accessor methods work only on columns with string data. If there are missing or non-string values, you might get errors.
You can chain multiple .str methods to do several text operations in one line.
Common methods include lower(), upper(), strip(), contains(), replace(), and split().
.str lets you use string methods on each item in a text column.
It helps clean, search, and change text data easily.
You can chain methods to do multiple text operations step-by-step.
Practice
.str accessor do in pandas when used on a text column?Solution
Step 1: Understand the purpose of
The.strin pandas.straccessor is used to apply string methods element-wise on a pandas Series containing text data.Step 2: Compare options with the known function
Only It allows applying string methods to each element in the column. correctly describes this behavior. Options A, B, and D describe other unrelated operations.Final Answer:
It allows applying string methods to each element in the column. -> Option AQuick Check:
.strapplies string methods [OK]
.str works like string methods on each item [OK]- Thinking
.strchanges data type - Confusing
.strwith sorting or filtering - Assuming it removes missing values automatically
df['name'] to lowercase using .str?Solution
Step 1: Recall correct
To apply string methods on a Series, use.strusageSeries.str.method(). Here,lower()is the method to convert to lowercase.Step 2: Check each option's syntax
df['name'].str.lower() usesdf['name'].str.lower(), which is correct. df['name'].lower() misses.str. df.str['name'].lower() has wrong order. df['name'].str.toLower() uses incorrect method nametoLower()(JavaScript style).Final Answer:
df['name'].str.lower() -> Option DQuick Check:
Use.str.lower()on Series [OK]
.str before string methods on Series [OK]- Omitting
.strand calling string method directly - Using JavaScript method names like
toLower() - Incorrect order like
df.str['name']
import pandas as pd s = pd.Series(['Apple', 'banana', 'Cherry']) result = s.str.upper()
What is the value of
result?Solution
Step 1: Understand what
This method converts each string in the Series to uppercase letters..str.upper()doesStep 2: Apply
'Apple' becomes 'APPLE', 'banana' becomes 'BANANA', and 'Cherry' becomes 'CHERRY'..str.upper()to each elementFinal Answer:
['APPLE', 'BANANA', 'CHERRY'] -> Option AQuick Check:
.str.upper()converts all to uppercase [OK]
.str.upper() [OK]- Expecting lowercase output
- Thinking original case remains unchanged
- Assuming method causes error
import pandas as pd s = pd.Series(['cat', 'dog', 'bird']) result = s.str.capitalize
Solution
Step 1: Identify the method call syntax
String methods must be called with parentheses, e.g.,capitalize(), not just referenced.Step 2: Check the code snippet
The code usess.str.capitalizewithout parentheses, so it returns a method object, not the transformed Series.Final Answer:
Missing parentheses to call the method -> Option CQuick Check:
Always add () to call string methods [OK]
- Forgetting parentheses after method name
- Using wrong method names
- Thinking Series lacks
.straccessor
s with email addresses. You want to extract the domain part (after '@') for each email. Which code correctly uses .str methods to do this?Solution
Step 1: Understand the goal
We want the part after '@' in each email string.Step 2: Analyze each option
s.str.split('@').str[1] splits each string at '@' and selects the second part (index 1), which is the domain. s.str.extract('@') extracts only '@' character, not the domain. s.str.find('@') returns the position of '@', not the domain. s.str.replace('@', '') removes '@' but keeps the rest combined.Final Answer:
s.str.split('@').str[1] -> Option BQuick Check:
Split by '@' and take second part [OK]
- Using
extract('@')which only matches '@' - Using
find('@')which returns position, not substring - Replacing '@' removes it but does not isolate domain
Ready to prove it?
Pass the test and this pattern moves unknown
