Replace NaN Values with Zeros in Pandas DataFrame
NaN stands for Not A Number and is one of the common ways to represent the missing value in the data. It is a special floating-point value and cannot be converted to any other type than float. NaN value is one of the major problems in Data Analysis. It is very essential to deal with NaN in order to get the desired results.Â
Â
Methods to Replace NaN Values with Zeros in Pandas DataFrame
In Python, there are two methods by which we can replace NaN values with zeros in Pandas dataframe. They are as follows:
Replace NaN Values with Zeros using Pandas fillna()Â
The fillna() function is used to fill NA/NaN values using the specified method. Let us see a few examples for a better understanding.
Replace NaN values with zeros for a column using Pandas fillna()Â
Syntax to replace NaN values with zeros of a single column in Pandas dataframe using fillna() function is as follows:
Syntax: df['DataFrame Column'] = df['DataFrame Column'].fillna(0)
Python3
import pandas as pd
import numpy as np
nums = { 'Set_of_Numbers' : [ 2 , 3 , 5 , 7 , 11 , 13 ,
np.nan, 19 , 23 , np.nan]}
df = pd.DataFrame(nums, columns = [ 'Set_of_Numbers' ])
df[ 'Set_of_Numbers' ] = df[ 'Set_of_Numbers' ].fillna( 0 )
df
|
Output:
fillna() to replace NaN for a single column
Replace NaN values with zeros for an entire column using Pandas fillna()Â
Syntax to replace NaN values with zeros of the whole Pandas dataframe using fillna() function is as follows:
Syntax: df.fillna(0)
Python3
import pandas as pd
import numpy as np
nums = { 'Number_set_1' : [ 0 , 1 , 1 , 2 , 3 , 5 , np.nan,
13 , 21 , np.nan],
'Number_set_2' : [ 3 , 7 , np.nan, 23 , 31 , 41 ,
np.nan, 59 , 67 , np.nan],
'Number_set_3' : [ 2 , 3 , 5 , np.nan, 11 , 13 , 17 ,
19 , 23 , np.nan]}
df = pd.DataFrame(nums)
df = df.fillna( 0 )
df
|
Output:
fillna() function  to replace NaN for the whole dataframe
Replace NaN Values with Zeros using NumPy replace()Â
The dataframe.replace() function in Pandas can be defined as a simple method used to replace a string, regex, list, dictionary, etc. in a DataFrame.
Replace NaN values with zeros for a column using NumPy replace()Â
Syntax to replace NaN values with zeros of a single column in Pandas dataframe using replace() function is as follows:
Syntax: df['DataFrame Column'] = df['DataFrame Column'].replace(np.nan, 0)
Python3
import pandas as pd
import numpy as np
nums = { 'Car Model Number' : [ 223 , np.nan, 237 , 195 , np.nan,
575 , 110 , 313 , np.nan, 190 , 143 ,
np.nan],
'Engine Number' : [ 4511 , np.nan, 7570 , 1565 , 1450 , 3786 ,
2995 , 5345 , 7777 , 2323 , 2785 , 1120 ]}
df = pd.DataFrame(nums, columns = [ 'Car Model Number' ])
df[ 'Car Model Number' ] = df[ 'Car Model Number' ].replace(np.nan, 0 )
df
|
Output:
replace() to replace NaN for a single column
Replace NaN values with zeros for an entire Dataframe using NumPy replace()Â
Syntax to replace NaN values with zeros of the whole Pandas dataframe using replace() function is as follows:
Syntax: df.replace(np.nan, 0)
Python3
import pandas as pd
import numpy as np
nums = { 'Student Name' : [ 'Shrek' , 'Shivansh' , 'Ishdeep' ,
'Siddharth' , 'Nakul' , 'Prakhar' ,
'Yash' , 'Srikar' , 'Kaustubh' ,
'Aditya' , 'Manav' , 'Dubey' ],
'Roll No.' : [ 18229 , 18232 , np.nan, 18247 , 18136 ,
np.nan, 18283 , 18310 , 18102 , 18012 ,
18121 , 18168 ],
'Subject ID' : [ 204 , np.nan, 201 , 105 , np.nan, 204 ,
101 , 101 , np.nan, 165 , 715 , np.nan],
'Grade Point' : [ 9 , np.nan, 7 , np.nan, 8 , 7 , 9 , 10 ,
np.nan, 9 , 6 , 8 ]}
df = pd.DataFrame(nums)
df = df.replace(np.nan, 0 )
df
|
Output:
replace() function  to replace NaN for the whole dataframe
Last Updated :
09 May, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...