Bird
Raised Fist0
Pandasdata~5 mins

str.contains() for pattern matching in Pandas - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the str.contains() method do in pandas?

The str.contains() method checks if each string in a pandas Series contains a specified pattern or substring. It returns a Series of True or False values.

Click to reveal answer
beginner
How can you use str.contains() to find rows with a specific word in a DataFrame column?

You can use df['column'].str.contains('word') to get a boolean Series. Then use it to filter rows: df[df['column'].str.contains('word')].

Click to reveal answer
beginner
What parameter do you use in str.contains() to ignore case when matching?

Use the parameter case=False to make the pattern matching ignore uppercase or lowercase differences.

Click to reveal answer
intermediate
What happens if the data contains missing values (NaN) when using str.contains()?

By default, str.contains() returns NaN for missing values. You can use na=False to treat missing values as False.

Click to reveal answer
intermediate
Can str.contains() use regular expressions for pattern matching?

Yes, by default str.contains() uses regular expressions. You can disable this by setting regex=False if you want to match exact substrings.

Click to reveal answer
What does df['col'].str.contains('abc') return?
AThe count of 'abc' in the column
BA filtered DataFrame with rows containing 'abc'
CA Series of True/False indicating if 'abc' is in each string
DThe first string containing 'abc'
How do you make str.contains() ignore case?
AUse <code>case=True</code>
BUse <code>case=False</code>
CUse <code>ignore_case=True</code>
DUse <code>ignore=True</code>
What parameter do you use to treat missing values as False in str.contains()?
Ana=False
Bna=True
Cfillna=False
Dmissing=False
If you want to match the exact substring without regex, what do you do?
ASet <code>regex=False</code>
BSet <code>regex=True</code>
CUse <code>exact=True</code>
DUse <code>match=True</code>
What type of object does str.contains() return?
ADataFrame
BString
CList
DBoolean Series
Explain how to use str.contains() to filter rows in a DataFrame based on a pattern.
Think about how to get True/False for each row and then select rows.
You got /4 concepts.
    Describe the role of the regex, case, and na parameters in str.contains().
    These parameters customize how the pattern matching works.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the str.contains() method do in pandas?
      easy
      A. It checks if a string pattern exists in each element of a Series.
      B. It replaces strings matching a pattern with another string.
      C. It counts the number of times a pattern appears in a Series.
      D. It sorts the Series based on string length.

      Solution

      1. Step 1: Understand the purpose of str.contains()

        This method is used to check if each string element in a pandas Series contains a specific pattern.
      2. Step 2: Compare with other string methods

        Replacing strings or counting occurrences are done by other methods like str.replace() or str.count(). Sorting is unrelated.
      3. Final Answer:

        It checks if a string pattern exists in each element of a Series. -> Option A
      4. Quick Check:

        str.contains() = check pattern presence [OK]
      Hint: Remember: contains means 'is pattern inside?' [OK]
      Common Mistakes:
      • Confusing contains with replace
      • Thinking it counts occurrences
      • Assuming it sorts data
      2. Which of the following is the correct syntax to find rows where column 'Name' contains the substring 'John' (case insensitive) in a DataFrame df?
      easy
      A. df[df['Name'].str.contains('John', ignore_case=True)]
      B. df[df['Name'].contains('John', case=False)]
      C. df[df['Name'].str.contains('John', case=True)]
      D. df[df['Name'].str.contains('John', case=False)]

      Solution

      1. Step 1: Identify correct method and parameters

        The method is str.contains() and to ignore case, use case=False.
      2. Step 2: Check syntax correctness

        df[df['Name'].str.contains('John', case=False)] uses correct method and parameter. df[df['Name'].contains('John', case=False)] misses str. df[df['Name'].str.contains('John', ignore_case=True)] uses wrong parameter ignore_case. df[df['Name'].str.contains('John', case=True)] sets case=True, which is case sensitive.
      3. Final Answer:

        df[df['Name'].str.contains('John', case=False)] -> Option D
      4. Quick Check:

        Use str.contains() with case=False [OK]
      Hint: Use case=False for ignoring case in str.contains() [OK]
      Common Mistakes:
      • Forgetting to use str accessor
      • Using wrong parameter name like ignore_case
      • Setting case=True when case insensitive needed
      3. Given the DataFrame df below, what is the output of df['City'].str.contains('York', na=False)?
      import pandas as pd
      df = pd.DataFrame({'City': ['New York', 'Yorkshire', None, 'Los Angeles']})
      medium
      A. [False, True, False, False]
      B. [True, False, False, False]
      C. [True, True, False, False]
      D. [True, True, True, False]

      Solution

      1. Step 1: Check each element for 'York'

        'New York' contains 'York' (True), 'Yorkshire' contains 'York' (True), None is missing so replaced by False due to na=False, 'Los Angeles' does not contain 'York' (False).
      2. Step 2: Construct boolean Series output

        The result is [True, True, False, False].
      3. Final Answer:

        [True, True, False, False] -> Option C
      4. Quick Check:

        Check each string for 'York' with na=False [OK]
      Hint: Use na=False to handle missing values safely [OK]
      Common Mistakes:
      • Ignoring missing values causing errors
      • Assuming None matches pattern
      • Misreading which strings contain 'York'
      4. What is wrong with this code snippet?
      df[df['Email'].str.contains('@gmail.com')]
      Assume some values in 'Email' column are missing (NaN).
      medium
      A. It will return all rows because '@gmail.com' matches everything.
      B. It will raise an error due to missing values without handling na parameter.
      C. It will ignore case sensitivity by default causing wrong results.
      D. It will convert all emails to lowercase automatically.

      Solution

      1. Step 1: Understand missing data impact on str.contains()

        If the column has NaN values, str.contains() raises an error unless na parameter is set.
      2. Step 2: Check code for na parameter

        The code does not set na=False, so it will raise an error when encountering NaN.
      3. Final Answer:

        It will raise an error due to missing values without handling na parameter. -> Option B
      4. Quick Check:

        Missing na causes errors with NaN [OK]
      Hint: Always add na=False to avoid errors with missing data [OK]
      Common Mistakes:
      • Ignoring NaN causes runtime error
      • Assuming default ignores case or missing data
      • Thinking it auto-lowers case
      5. You have a DataFrame df with a column 'Description' containing product details. You want to filter rows where 'Description' contains either 'red' or 'blue' (case insensitive), but some rows have missing values. Which code snippet correctly does this?
      hard
      A. df[df['Description'].str.contains('red|blue', case=False, na=False)]
      B. df[df['Description'].str.contains('red|blue', case=True)]
      C. df[df['Description'].str.contains('red|blue', na=True)]
      D. df[df['Description'].str.contains('red|blue', case=False)]

      Solution

      1. Step 1: Use regex pattern for multiple options

        To match 'red' or 'blue', use the regex pattern 'red|blue'.
      2. Step 2: Handle case insensitivity and missing values

        Set case=False for ignoring case and na=False to avoid errors on missing data.
      3. Step 3: Verify options

        df[df['Description'].str.contains('red|blue', case=False, na=False)] correctly uses both case=False and na=False. df[df['Description'].str.contains('red|blue', case=True)] is case sensitive. df[df['Description'].str.contains('red|blue', na=True)] uses invalid na=True. df[df['Description'].str.contains('red|blue', case=False)] misses na=False.
      4. Final Answer:

        df[df['Description'].str.contains('red|blue', case=False, na=False)] -> Option A
      5. Quick Check:

        Use regex with case=False and na=False [OK]
      Hint: Use regex 'red|blue' with case=False and na=False [OK]
      Common Mistakes:
      • Forgetting na=False causes errors
      • Using case sensitive search unintentionally
      • Wrong regex or missing regex for multiple patterns
      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