Bird
Raised Fist0
Pandasdata~10 mins

str.lower() and str.upper() in Pandas - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - str.lower() and str.upper()
Start with a pandas Series
↓
Apply str.lower()
↓
Convert all text to lowercase
↓
Output new Series with lowercase strings
↓
Apply str.upper()
↓
Convert all text to uppercase
↓
Output new Series with uppercase strings
This flow shows how to take a pandas Series of text and convert all strings to lowercase or uppercase using str.lower() and str.upper().
Execution Sample
Pandas
import pandas as pd
s = pd.Series(['Apple', 'Banana', 'Cherry'])
lower_s = s.str.lower()
upper_s = s.str.upper()
This code creates a Series of fruit names, then makes new Series with all lowercase and all uppercase letters.
Execution Table
StepActionInput SeriesMethod AppliedOutput Series
1Create Series['Apple', 'Banana', 'Cherry']None['Apple', 'Banana', 'Cherry']
2Apply str.lower()['Apple', 'Banana', 'Cherry']str.lower()['apple', 'banana', 'cherry']
3Apply str.upper()['Apple', 'Banana', 'Cherry']str.upper()['APPLE', 'BANANA', 'CHERRY']
4End---
💡 All strings converted; no more steps.
Variable Tracker
VariableStartAfter str.lower()After str.upper()
s['Apple', 'Banana', 'Cherry']['Apple', 'Banana', 'Cherry']['Apple', 'Banana', 'Cherry']
lower_sN/A['apple', 'banana', 'cherry']['apple', 'banana', 'cherry']
upper_sN/AN/A['APPLE', 'BANANA', 'CHERRY']
Key Moments - 2 Insights
Why does the original Series 's' not change after applying str.lower() or str.upper()?
Because str.lower() and str.upper() return new Series objects with the changes; they do not modify the original Series 's'. See execution_table rows 2 and 3 where input remains the same.
What happens if the Series contains non-string values?
Non-string values are ignored or result in NaN in the output Series when using str.lower() or str.upper(). This example only has strings, so all convert successfully.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 2, what is the output Series?
A['APPLE', 'BANANA', 'CHERRY']
B['Apple', 'Banana', 'Cherry']
C['apple', 'banana', 'cherry']
D['aPPLE', 'bANANA', 'cHERRY']
💡 Hint
Check the 'Output Series' column at step 2 in the execution_table.
At which step does the Series get converted to uppercase?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Method Applied' column to find where str.upper() is used.
If we change the original Series to include numbers, what will happen when applying str.lower()?
ANumbers will become NaN in the output
BNumbers will convert to lowercase letters
CNumbers will cause an error
DNumbers will remain unchanged
💡 Hint
Recall that str methods work on strings; non-strings become NaN as explained in key_moments.
Concept Snapshot
pandas Series.str.lower() and str.upper()
- Convert all string elements to lowercase or uppercase
- Returns a new Series; original stays unchanged
- Non-string values become NaN
- Usage: new_series = series.str.lower() or series.str.upper()
Full Transcript
We start with a pandas Series containing strings. Using str.lower() converts all strings to lowercase and returns a new Series without changing the original. Similarly, str.upper() converts all strings to uppercase. Non-string values would become NaN if present. This process helps standardize text data for analysis.

Practice

(1/5)
1. What does the pandas method str.lower() do when applied to a Series of text data?
easy
A. Converts all characters in the text to lowercase.
B. Converts all characters in the text to uppercase.
C. Removes all spaces from the text.
D. Reverses the order of characters in the text.

Solution

  1. Step 1: Understand the method purpose

    The str.lower() method changes all letters in text to lowercase.
  2. Step 2: Compare with other options

    Other options describe different actions like uppercase, removing spaces, or reversing text, which are not what str.lower() does.
  3. Final Answer:

    Converts all characters in the text to lowercase. -> Option A
  4. Quick Check:

    str.lower() = lowercase conversion [OK]
Hint: Lowercase means all letters small [OK]
Common Mistakes:
  • Confusing str.lower() with str.upper()
  • Thinking it removes spaces
  • Assuming it reverses text
2. Which of the following is the correct way to convert a pandas Series named names to uppercase?
easy
A. names.str.upper()
B. str.upper(names)
C. names.upper()
D. names.str.upper

Solution

  1. Step 1: Recall pandas string method syntax

    To apply string methods on a pandas Series, use Series.str.method() syntax.
  2. Step 2: Check each option

    names.str.upper() uses names.str.upper(), which is correct. names.upper() misses .str, str.upper(names) is incorrect function call, names.str.upper misses parentheses.
  3. Final Answer:

    names.str.upper() -> Option A
  4. Quick Check:

    Use .str.upper() on Series [OK]
Hint: Use .str before string methods on Series [OK]
Common Mistakes:
  • Calling upper() directly on Series without .str
  • Forgetting parentheses after method
  • Using str.upper() as a standalone function
3. Given the pandas Series data = pd.Series(['Apple', 'Banana', 'Cherry']), what is the output of data.str.lower()?
medium
A. ['Apple', 'Banana', 'Cherry']
B. ['APPLE', 'BANANA', 'CHERRY']
C. ['apple', 'banana', 'cherry']
D. ['aPPLE', 'bANANA', 'cHERRY']

Solution

  1. Step 1: Understand the input Series

    The Series contains capitalized fruit names: 'Apple', 'Banana', 'Cherry'.
  2. Step 2: Apply str.lower() method

    This method converts all letters to lowercase, so each word becomes fully lowercase.
  3. Final Answer:

    ['apple', 'banana', 'cherry'] -> Option C
  4. Quick Check:

    str.lower() makes all letters lowercase [OK]
Hint: str.lower() makes all letters small [OK]
Common Mistakes:
  • Expecting original case to remain
  • Confusing with str.upper() output
  • Thinking only first letter changes
4. What is wrong with this code snippet to convert a pandas Series cities to uppercase?
cities = pd.Series(['Paris', 'London', 'Berlin'])
cities_upper = cities.upper()
medium
A. Missing import statement for pandas.
B. The code should use cities.upper without parentheses.
C. Series cannot be converted to uppercase.
D. Method upper() should be called as cities.str.upper().

Solution

  1. Step 1: Identify method usage on Series

    String methods like upper() must be called with .str accessor on pandas Series.
  2. Step 2: Check the code

    The code uses cities.upper() which is invalid; correct is cities.str.upper().
  3. Final Answer:

    Method upper() should be called as cities.str.upper(). -> Option D
  4. Quick Check:

    Use .str.upper() on Series [OK]
Hint: Use .str before string methods on Series [OK]
Common Mistakes:
  • Calling upper() directly on Series
  • Forgetting .str accessor
  • Removing parentheses from method call
5. You have a pandas DataFrame df with a column 'Product' containing mixed case product names. You want to create a new column 'Product_Upper' with all names in uppercase. Which code correctly does this?
hard
A. df['Product_Upper'] = df['Product'].upper()
B. df['Product_Upper'] = df['Product'].str.upper()
C. df['Product_Upper'] = str.upper(df['Product'])
D. df['Product_Upper'] = df['Product'].str.lower()

Solution

  1. Step 1: Understand the DataFrame and goal

    The goal is to create a new column with uppercase product names from an existing column.
  2. Step 2: Apply correct method for uppercase conversion

    Use .str.upper() on the Series to convert text to uppercase correctly.
  3. Step 3: Check options

    df['Product_Upper'] = df['Product'].str.upper() uses correct syntax. df['Product_Upper'] = df['Product'].upper() misses .str, df['Product_Upper'] = str.upper(df['Product']) uses wrong function call, df['Product_Upper'] = df['Product'].str.lower() converts to lowercase, not uppercase.
  4. Final Answer:

    df['Product_Upper'] = df['Product'].str.upper() -> Option B
  5. Quick Check:

    Use .str.upper() to uppercase Series text [OK]
Hint: Use .str.upper() to convert Series text uppercase [OK]
Common Mistakes:
  • Calling upper() without .str
  • Using str.upper() as a function on Series
  • Confusing upper() with lower()
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