Sometimes data has missing values. Forward fill and backward fill help fill these gaps using nearby known values.
Forward fill and backward fill in Data Analysis Python
DataFrame.fillna(method='ffill') # forward fill DataFrame.fillna(method='bfill') # backward fill
ffill means fill missing values using the last known value above (forward fill).
bfill means fill missing values using the next known value below (backward fill).
df.fillna(method='ffill')df.fillna(method='bfill')df.fillna(method='ffill', limit=1)
This code creates a small table with missing temperatures. It shows how forward fill and backward fill replace missing values using nearby known temperatures.
import pandas as pd # Create example data with missing values data = {'Day': [1, 2, 3, 4, 5], 'Temperature': [20.0, None, None, 22.0, None]} df = pd.DataFrame(data) # Forward fill missing values ffill_df = df.fillna(method='ffill') # Backward fill missing values bfill_df = df.fillna(method='bfill') print('Original DataFrame:') print(df) print('\nAfter Forward Fill:') print(ffill_df) print('\nAfter Backward Fill:') print(bfill_df)
Forward fill works well when missing data should carry the last known value forward in time.
Backward fill is useful when you want to fill missing data using the next known value.
Be careful: filling too many missing values blindly can hide real gaps or errors.
Forward fill copies the last known value forward to fill missing spots.
Backward fill copies the next known value backward to fill missing spots.
Both help prepare data for analysis by handling missing values simply.
Practice
forward fill do when handling missing data in a dataset?Solution
Step 1: Understand forward fill concept
Forward fill means filling missing data by copying the last known value forward to the next missing spot.Step 2: Compare options with definition
"It copies the last known value forward to fill missing spots." matches this definition exactly, while others describe different methods.Final Answer:
It copies the last known value forward to fill missing spots. -> Option DQuick Check:
Forward fill = copy last known value forward [OK]
- Confusing forward fill with backward fill
- Thinking forward fill removes missing data
- Assuming forward fill replaces with zero
df?Solution
Step 1: Recall pandas fillna syntax
In pandas, forward fill is done byfillna(method='ffill').Step 2: Check options for correct syntax
df.fillna(method='ffill')matches the correct method name 'ffill'.df.fillna(method='bfill')performs backward fill. The remaining options use invalid syntax.Final Answer:
df.fillna(method='ffill') -> Option AQuick Check:
Forward fill method = 'ffill' [OK]
- Using 'bfill' instead of 'ffill' for forward fill
- Passing invalid parameters like forward=True
- Confusing method names in fillna
df below, what will be the result of df.bfill()?
import pandas as pd
df = pd.DataFrame({'A': [1, None, None, 4, None]})
print(df.bfill())Solution
Step 1: Understand backward fill on given data
Backward fill copies the next known value backward to fill missing spots. Here, missing values at index 1 and 2 get filled with 4.0 from index 3. The last missing at index 4 has no next value, so remains NaN.Step 2: Match output with options
A 0 1.0 1 4.0 2 4.0 3 4.0 4 NaN matches this result exactly. A 0 1.0 1 4.0 2 4.0 3 4.0 4 4.0 incorrectly fills last NaN with 4.0, others do not match.Final Answer:
A 0 1.0 1 4.0 2 4.0 3 4.0 4 NaN -> Option AQuick Check:
Backward fill fills missing with next known value [OK]
- Assuming last NaN gets filled when no next value exists
- Confusing forward and backward fill results
- Misreading index positions in output
import pandas as pd
df = pd.DataFrame({'A': [None, 2, None]})
df.fillna(method='forward')Solution
Step 1: Check fillna method parameter
The valid method names are 'ffill' for forward fill and 'bfill' for backward fill. 'forward' is not valid.Step 2: Identify cause of error
Using 'forward' causes a ValueError. DataFrames can have None values, fillna does not require inplace=True, and it accepts the method parameter.Final Answer:
The method name 'forward' is invalid; should be 'ffill'. -> Option CQuick Check:
Use 'ffill' for forward fill method [OK]
- Using 'forward' instead of 'ffill'
- Thinking inplace=True is mandatory
- Believing fillna can't handle None values
df with missing values scattered in column 'B'. You want to fill missing values by first forward filling, then backward filling any remaining missing values. Which code correctly does this?Solution
Step 1: Understand chaining fillna calls
To fill missing values first forward then backward, chain fillna calls: first with method='ffill', then on result with method='bfill'.Step 2: Evaluate options for correct chaining
df['B'].fillna(method='ffill').fillna(method='bfill') correctly chains fillna twice. df['B'].fillna(method='bfill').fillna(method='ffill') reverses order. Attempting multiple methods in one call (duplicate kwargs or list) uses invalid syntax.Final Answer:
df['B'].fillna(method='ffill').fillna(method='bfill') -> Option BQuick Check:
Chain fillna with 'ffill' then 'bfill' [OK]
- Trying to pass multiple methods in one fillna call
- Reversing forward and backward fill order
- Not chaining calls, so some NaNs remain
Ready to prove it?
Pass the test and this pattern moves unknown
