Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
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.
Advertisements
