Python Pandas - Replace all NaN elements in a DataFrame with 0s

To replace NaN values in a Pandas DataFrame, use the fillna() method. This is useful for data cleaning when you want to replace missing values with zeros or other default values.

Basic Syntax

DataFrame.fillna(value, inplace=False)

Where value is the replacement value and inplace determines whether to modify the original DataFrame.

Creating a DataFrame with NaN Values

Let's create a sample DataFrame with some NaN values to demonstrate the replacement ?

import pandas as pd
import numpy as np

# Create a DataFrame with NaN values
data = {
    'Car': ['BMW', 'Lexus', 'Audi', 'Jaguar', 'Mustang'],
    'Reg_Price': [2500, 3500, 2500, 2000, 2500],
    'Units': [100.0, np.nan, 120.0, np.nan, 110.0]
}

dataFrame = pd.DataFrame(data)
print("Original DataFrame...")
print(dataFrame)
Original DataFrame...
       Car  Reg_Price  Units
0      BMW       2500  100.0
1    Lexus       3500    NaN
2     Audi       2500  120.0
3   Jaguar       2000    NaN
4  Mustang       2500  110.0

Replacing NaN Values with 0

Use fillna(0) to replace all NaN values with zeros ?

import pandas as pd
import numpy as np

# Create DataFrame with NaN values
data = {
    'Car': ['BMW', 'Lexus', 'Audi', 'Jaguar', 'Mustang'],
    'Reg_Price': [2500, 3500, 2500, 2000, 2500],
    'Units': [100.0, np.nan, 120.0, np.nan, 110.0]
}

dataFrame = pd.DataFrame(data)

# Replace NaN values with 0s
result = dataFrame.fillna(0)
print("DataFrame after replacing NaN values...")
print(result)
DataFrame after replacing NaN values...
       Car  Reg_Price  Units
0      BMW       2500  100.0
1    Lexus       3500    0.0
2     Audi       2500  120.0
3   Jaguar       2000    0.0
4  Mustang       2500  110.0

In-Place Replacement

To modify the original DataFrame instead of creating a copy, use inplace=True ?

import pandas as pd
import numpy as np

# Create DataFrame with NaN values
data = {
    'Car': ['BMW', 'Lexus', 'Audi', 'Jaguar', 'Mustang'],
    'Units': [100.0, np.nan, 120.0, np.nan, 110.0]
}

dataFrame = pd.DataFrame(data)
print("Before replacement:")
print(dataFrame)

# Replace NaN values in-place
dataFrame.fillna(0, inplace=True)
print("\nAfter in-place replacement:")
print(dataFrame)
Before replacement:
       Car  Units
0      BMW  100.0
1    Lexus    NaN
2     Audi  120.0
3   Jaguar    NaN
4  Mustang  110.0

After in-place replacement:
       Car  Units
0      BMW  100.0
1    Lexus    0.0
2     Audi  120.0
3   Jaguar    0.0
4  Mustang  110.0

Conclusion

Use fillna(0) to replace all NaN values with zeros in a DataFrame. Add inplace=True to modify the original DataFrame directly instead of creating a copy.

Updated on: 2026-03-26T13:36:05+05:30

428 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements