Using bfill in Pandas

We’ll explore what bfill() does and how to use it effectively in data cleaning.

Understanding bfill()

bfill() is a Pandas method used to fill missing or NaN values in a DataFrame or Series. It propagates non-null values backward along the specified axis to fill in the missing values. Essentially, it copies the next valid value found in the specified direction and uses it to replace NaN values.


The basic syntax for using bfill() is as follows:

DataFrame.bfill(axis=None, inplace=False, limit=None)
  • axis: Specifies the axis along which to propagate the fill. By default, it’s set to axis=0, meaning it works along the vertical axis (filling down the columns). You can use axis=1 to fill along the horizontal axis (filling across rows).
  • inplace: If set to True, the DataFrame is modified in place, and no new DataFrame is returned. If False (the default), a new DataFrame with the filled values is returned.
  • limit: An optional parameter that limits the number of consecutive NaN values filled. For example, if limit=2, only up to two consecutive NaN values will be replaced in each run.

Example Usage

Let’s consider a simple example:

import pandas as pd
import numpy as np

data = {'A': [1, 2, np.nan, 4, np.nan, 6],
'B': [10, np.nan, np.nan, 40, 50, 60]}

df = pd.DataFrame(data)
df_filled = df.bfill()


In this example, the bfill() method fills the NaN values in each column by propagating the next valid value backward along the columns.

Use Cases

  • Time Series Data: bfill() is often used to fill missing values in time series data where missing values can be filled with the previous data point.
  • Data Cleaning: When cleaning datasets, you can use bfill() to fill in missing values based on the data’s existing patterns.

Leave a Reply