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.

img

Methods to replace NaN values with zeros in Pandas DataFrame:

  • fillna()
    The fillna() function is used to fill NA/NaN values using the specified method.

  • 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.

Steps to replace NaN values:



  • For one column using pandas:
    df['DataFrame Column'] = df['DataFrame Column'].fillna(0)
    
  • For one column using numpy:
    df['DataFrame Column'] = df['DataFrame Column'].replace(np.nan, 0)
    
  • For the whole DataFrame using pandas:
    df.fillna(0)
    
  • For the whole DataFrame using numpy:
    df.replace(np.nan, 0)
    

Method 1: Using fillna() function for a single column

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


Output:

pandas-replace-nan-1

Method 2: Using replace() function for a single column

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


Output:

pandas-replace-nan-2

Method 3: Using fillna() function for the whole dataframe

Example:



filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


Output:

pandas-replace-nan-3

Method 4: Using replace() function for the whole dataframe

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


Output:

pandas-replace-nan-5

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.