You can use the following methods to replace NaN values with zeros in a pandas DataFrame:
Method 1: Replace NaN Values with Zero in One Column
df['col1'] = df['col1'].fillna(0)
Method 2: Replace NaN Values with Zero in Several Columns
df[['col1', 'col2']] = df[['col1', 'col2']].fillna(0)
Method 3: Replace NaN Values with Zero in All Columns
df = df.fillna(0)
The following examples show how to use each of these methods with the following pandas DataFrame:
import pandas as pd
import numpy as np
#create DataFrame
df = pd.DataFrame({'points': [25, np.nan, 15, 14, 19, 23, 25, 29],
'assists': [5, np.nan, 7, np.nan, 12, 9, 9, 4],
'rebounds': [11, 8, 10, 6, 6, np.nan, 9, np.nan]})
#view DataFrame
print(df)
points assists rebounds
0 25.0 5.0 11.0
1 NaN NaN 8.0
2 15.0 7.0 10.0
3 14.0 NaN 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN
Method 1: Replace NaN Values with Zero in One Column
The following code shows how to replace NaN values with zero in just the ‘assists’ column:
#replace NaN values with zero in 'assists' column
df['assists'] = df['assists'].fillna(0)
#view updated DataFrame
print(df)
points assists rebounds
0 25.0 5.0 11.0
1 NaN 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN
Notice that the NaN values in the ‘assists’ column have been replaced with zeros, but the NaN values in every other column still remain.
Method 2: Replace NaN Values with Zero in Several Columns
The following code shows how to replace NaN values with zero in the ‘points’ and ‘assists’ columns:
#replace NaN values with zero in 'points' and 'assists' column
df[['points', 'assists']] = df[['points', 'assists']].fillna(0)
#view updated DataFrame
print(df)
points assists rebounds
0 25.0 5.0 11.0
1 0.0 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 NaN
6 25.0 9.0 9.0
7 29.0 4.0 NaN
Method 3: Replace NaN Values with Zero in All Columns
The following code shows how to replace NaN values with zero in every column of the DataFrame:
#replace NaN values with zero in all columns
df = df.fillna(0)
#view updated DataFrame
print(df)
points assists rebounds
0 25.0 5.0 11.0
1 0.0 0.0 8.0
2 15.0 7.0 10.0
3 14.0 0.0 6.0
4 19.0 12.0 6.0
5 23.0 9.0 0.0
6 25.0 9.0 9.0
7 29.0 4.0 0.0
Additional Resources
The following tutorials explain how to perform other common operations in pandas:
How to Replace Specific Values in Pandas
How to Filter a Pandas DataFrame by Column Values
How to Fill NA Values for Multiple Columns in Pandas