0
0
Pandasdata~10 mins

Forward fill and backward fill in Pandas - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Forward fill and backward fill
Start with DataFrame with missing values
Choose fill method: forward fill or backward fill
Forward fill
Replace NaN with
previous valid
Return filled DataFrame
The process starts with a DataFrame containing missing values. You choose to fill missing values either by carrying forward the last known value (forward fill) or by using the next known value (backward fill).
Execution Sample
Pandas
import pandas as pd

df = pd.DataFrame({'A': [1, None, None, 4, None, 6]})
ffill = df.fillna(method='ffill')
bfill = df.fillna(method='bfill')
This code creates a DataFrame with missing values and fills them using forward fill and backward fill methods.
Execution Table
StepDataFrame 'A' valuesActionResulting 'A' values
1[1, NaN, NaN, 4, NaN, 6]Start with original data[1, NaN, NaN, 4, NaN, 6]
2[1, NaN, NaN, 4, NaN, 6]Apply forward fill[1, 1, 1, 4, 4, 6]
3[1, NaN, NaN, 4, NaN, 6]Apply backward fill[1, 4, 4, 4, 6, 6]
4[1, NaN, NaN, 4, NaN, 6]End of filling operationsN/A
💡 All missing values replaced by forward or backward fill; no NaNs remain after fill.
Variable Tracker
VariableStartAfter forward fillAfter backward fill
df['A'][1, NaN, NaN, 4, NaN, 6][1, 1, 1, 4, 4, 6][1, 4, 4, 4, 6, 6]
Key Moments - 3 Insights
Why does forward fill replace NaN at index 1 with 1 instead of 4?
Forward fill replaces NaN with the last valid value seen before it. At index 1, the last valid value is 1 at index 0, so it fills with 1 (see execution_table row 2).
Why does backward fill replace NaN at index 1 with 4 instead of 1?
Backward fill replaces NaN with the next valid value after it. At index 1, the next valid value is 4 at index 3, so it fills with 4 (see execution_table row 3).
What happens if the first value is NaN and we use forward fill?
Forward fill cannot fill NaN at the start because there is no previous valid value. The NaN remains unchanged unless a different method is used.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table at step 2. What is the value at index 4 after forward fill?
A4
BNaN
C6
D1
💡 Hint
Check the 'Resulting A values' column at step 2 in the execution_table.
At which step does backward fill replace the NaN at index 2?
AStep 2
BStep 3
CStep 1
DStep 4
💡 Hint
Look at the 'Action' column and the changes in 'A' values in execution_table rows.
If the first value in column 'A' was NaN, what would forward fill do to it?
AReplace it with the next valid value
BReplace it with zero
CLeave it as NaN
DReplace it with the last valid value
💡 Hint
Refer to key_moments about forward fill behavior at the start of data.
Concept Snapshot
Forward fill (ffill) replaces missing values with the last known value above.
Backward fill (bfill) replaces missing values with the next known value below.
Use df.fillna(method='ffill') or df.fillna(method='bfill').
Missing values at start (ffill) or end (bfill) may remain if no valid value exists.
Useful for filling gaps in time series or ordered data.
Full Transcript
Forward fill and backward fill are methods to fill missing data in pandas DataFrames. Forward fill replaces missing values with the last valid value seen before them, moving down the column. Backward fill replaces missing values with the next valid value seen after them, moving up the column. In the example, a DataFrame with missing values is filled using both methods. Forward fill fills NaNs by carrying the previous value forward, while backward fill fills NaNs by carrying the next value backward. If missing values appear at the start (for forward fill) or at the end (for backward fill) with no valid values to fill from, those NaNs remain. These methods help clean data for analysis, especially when data is ordered like time series.