Python Pandas - Mask and replace NaNs with a specific value

To mask and replace NaNs with a specific value in a Pandas Index, use the putmask() method combined with isna(). This approach allows you to replace all NaN values with a specified replacement value.

Syntax

index.putmask(condition, value)

Parameters:

  • condition: Boolean array or condition to identify elements to replace
  • value: The replacement value for masked elements

Creating a Pandas Index with NaNs

First, let's create a Pandas Index containing some NaN values ?

import pandas as pd
import numpy as np

# Creating Pandas index with some NaNs
index = pd.Index([5, 65, 10, np.nan, 75, np.nan])
print("Original Pandas Index...")
print(index)
Original Pandas Index...
Float64Index([5.0, 65.0, 10.0, nan, 75.0, nan], dtype='float64')

Masking and Replacing NaN Values

Now we'll use putmask() to replace all NaN values with a specific value ?

import pandas as pd
import numpy as np

# Creating Pandas index with some NaNs
index = pd.Index([5, 65, 10, np.nan, 75, np.nan])

# Display the original index
print("Original Index:")
print(index)

# Mask and replace NaN values with 111
result = index.putmask(index.isna(), 111)
print("\nAfter masking NaNs with 111:")
print(index)
Original Index:
Float64Index([5.0, 65.0, 10.0, nan, 75.0, nan], dtype='float64')

After masking NaNs with 111:
Float64Index([5.0, 65.0, 10.0, 111.0, 75.0, 111.0], dtype='float64')

Alternative Methods

You can also use fillna() method for similar functionality ?

import pandas as pd
import numpy as np

# Creating Pandas index with some NaNs
index = pd.Index([5, 65, 10, np.nan, 75, np.nan])

# Using fillna() method
filled_index = index.fillna(999)
print("Using fillna() method:")
print(filled_index)
Using fillna() method:
Float64Index([5.0, 65.0, 10.0, 999.0, 75.0, 999.0], dtype='float64')

Key Points

  • putmask() modifies the original index in-place and returns None
  • isna() identifies NaN values in the index
  • fillna() creates a new index with NaN values replaced
  • Both methods work with any data type that supports NaN values

Conclusion

Use putmask() with isna() to replace NaN values in-place, or fillna() to create a new index with replaced values. Both methods provide effective ways to handle missing data in Pandas indexes.

Updated on: 2026-03-26T16:07:24+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements