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
# importing libraries import pandas as pd import numpy as np nums = { 'Set_of_Numbers' : [ 2 , 3 , 5 , 7 , 11 , 13 , np.nan, 19 , 23 , np.nan]} # Create the dataframe df = pd.DataFrame(nums, columns = [ 'Set_of_Numbers' ]) # Apply the function df[ 'Set_of_Numbers' ] = df[ 'Set_of_Numbers' ].fillna( 0 ) # print the DataFrame df |
Output:
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
# importing libraries 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]} # Create the dataframe df = pd.DataFrame(nums) # Apply the function df = df.fillna( 0 ) # print the DataFrame df |
Output:
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
# importing libraries 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 ]} # Create the dataframe df = pd.DataFrame(nums, columns = [ 'Car Model Number' ]) # Apply the function df[ 'Car Model Number' ] = df[ 'Car Model Number' ].replace(np.nan, 0 ) # print the DataFrame df |
Output:
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
# importing libraries 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 ]} # Create the dataframe df = pd.DataFrame(nums) # Apply the function df = df.replace(np.nan, 0 ) # print the DataFrame df |
Output: