We use replace() to change specific values in data. It helps fix mistakes or update data easily.
replace() for value substitution in Pandas
import pandas as pd # Create a DataFrame or Series # Use replace() to swap old values with new ones # df.replace(to_replace, value, inplace=False) # to_replace: value or list/dict of values to find # value: value or list/dict of values to replace with # inplace: if True, changes original data; else returns new data
You can replace single values or multiple values at once.
Use inplace=True to change the original data directly.
import pandas as pd # Example 1: Replace single value in a Series fruits = pd.Series(['apple', 'banana', 'apple', 'orange']) fruits_replaced = fruits.replace('apple', 'pear') print(fruits_replaced)
import pandas as pd # Example 2: Replace multiple values in a DataFrame data = pd.DataFrame({ 'A': ['cat', 'dog', 'cat'], 'B': ['red', 'blue', 'red'] }) data_replaced = data.replace({'cat': 'lion', 'red': 'green'}) print(data_replaced)
import pandas as pd # Example 3: Replace value in empty Series empty_series = pd.Series([], dtype=object) empty_replaced = empty_series.replace('old', 'new') print(empty_replaced)
import pandas as pd # Example 4: Replace value at the start and end series = pd.Series(['start', 'middle', 'end']) series_replaced = series.replace({'start': 'begin', 'end': 'finish'}) print(series_replaced)
This program shows how to replace all 'B' grades with 'B+' in the 'Grade' column of a DataFrame.
import pandas as pd # Create a DataFrame with some values student_scores = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Grade': ['A', 'B', 'C', 'B'] }) print('Original DataFrame:') print(student_scores) # Replace grade 'B' with 'B+' updated_scores = student_scores.replace({'Grade': {'B': 'B+'}}) print('\nDataFrame after replace():') print(updated_scores)
Time complexity: Usually O(n), where n is number of elements to check.
Space complexity: O(n) if inplace=False because it creates a new object.
Common mistake: forgetting to assign the result back or use inplace=True, so original data stays unchanged.
Use replace() when you want to change specific values without affecting others. For complex changes, consider mapping or conditional logic.
replace() helps swap specific values in pandas data.
You can replace one or many values at once using dicts or lists.
Remember to assign the result or use inplace=True to keep changes.
Practice
replace() method do in pandas?Solution
Step 1: Understand the purpose of replace()
Thereplace()method is used to change specific values in pandas data structures.Step 2: Compare with other options
The other options describe sorting the DataFrame, deleting rows, and adding columns, which are unrelated to value substitution.Final Answer:
It swaps specified values in a DataFrame or Series with new values. -> Option DQuick Check:
replace() = value substitution [OK]
- Confusing replace() with drop() or sort_values()
- Thinking replace() adds or removes rows
- Assuming replace() changes column names
s?Solution
Step 1: Identify the correct replace() syntax
The syntaxs.replace(old_value, new_value)replaces all old_value with new_value.Step 2: Check each option
s.replace(0, 100) correctly replaces 0 with 100. The other options reverse the values: s.replace(100, 0), s.replace([100], [0]), s.replace({100: 0}).Final Answer:
s.replace(0, 100) -> Option CQuick Check:
replace(old, new) = s.replace(0, 100) [OK]
- Swapping the old and new values by mistake
- Using dict with reversed keys and values
- Confusing list syntax with dict syntax
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 2], 'B': [4, 5, 2, 4]})
df_new = df.replace(2, 99)What is the content of
df_new?Solution
Step 1: Understand replace(2, 99) on DataFrame
All occurrences of 2 in the DataFrame are replaced by 99.Step 2: Apply replacement to each column
Column 'A': 2 replaced by 99 at positions 1 and 3.
Column 'B': 2 replaced by 99 at position 2.Final Answer:
{'A': [1, 99, 3, 99], 'B': [4, 5, 99, 4]} -> Option AQuick Check:
All 2s -> 99 in df_new [OK]
- Assuming replace only affects one column
- Thinking original df changes without assignment
- Replacing only first occurrence instead of all
df = pd.DataFrame({'X': [1, 2, 3]})
df.replace(2, 99)
print(df)It is intended to replace 2 with 99 in column 'X'.
Solution
Step 1: Understand replace() behavior
By default, replace() returns a new DataFrame and does not change the original unless inplace=True or reassigned.Step 2: Analyze the code snippet
The code calls replace() but does not assign the result back to df or use inplace=True, so df remains unchanged.Final Answer:
The replace() method does not modify df unless inplace=True or reassigned. -> Option AQuick Check:
replace() returns new object unless inplace=True [OK]
- Expecting replace() to change original without assignment
- Using wrong syntax for replace()
- Thinking replace() works only on Series
df = pd.DataFrame({'Grade': ['A', 'B', 'C', 'D', 'F']})You want to replace grades 'A' and 'B' with 'Pass' and 'C', 'D', 'F' with 'Fail' in one call. Which code does this correctly?
Solution
Step 1: Understand replace() with dictionary mapping
Using a dictionary with keys as old values and values as new values allows multiple replacements in one call.Step 2: Check each option
df.replace({'A': 'Pass', 'B': 'Pass', 'C': 'Fail', 'D': 'Fail', 'F': 'Fail'}) correctly maps each grade to 'Pass' or 'Fail'. df.replace(['A', 'B'], ['Pass', 'Pass']).replace(['C', 'D', 'F'], ['Fail', 'Fail', 'Fail']) uses two replace calls, which works but is two steps, not one call. df.replace({'Pass': ['A', 'B'], 'Fail': ['C', 'D', 'F']}) reverses keys and values, which is invalid. df.replace({'A': 'Pass', 'B': 'Fail', 'C': 'Pass', 'D': 'Fail', 'F': 'Pass'}) mixes mappings incorrectly.Final Answer:
df.replace({'A': 'Pass', 'B': 'Pass', 'C': 'Fail', 'D': 'Fail', 'F': 'Fail'}) -> Option BQuick Check:
Use dict in replace() for multiple value swaps [OK]
- Using lists instead of dict for multiple replacements
- Reversing keys and values in dict
- Chaining replace() unnecessarily
Ready to prove it?
Pass the test and this pattern moves unknown
