3 Ways to Create NaN Values in Pandas DataFrame

In this article, you’ll see 3 ways to create NaN values in Pandas DataFrame:

  1. Using Numpy
  2. Importing a file with blank values
  3. Applying to_numeric

3 Ways to Create NaN Values in Pandas DataFrame

(1) Using Numpy

You can easily create NaN values in Pandas DataFrame by using Numpy.

More specifically, you can insert np.nan each time you want to add a NaN value into the DataFrame.

For example, in the code below, there are 4 instances of np.nan under a single DataFrame column:

import pandas as pd
import numpy as np

data = {'set_of_numbers': [1,2,3,4,5,np.nan,6,7,np.nan,np.nan,8,9,10,np.nan]}
df = pd.DataFrame(data,columns=['set_of_numbers'])

print (df)

This would result in 4 NaN values in the DataFrame:

Create NaN Values in Pandas DataFrame

Similarly, you can insert np.nan across multiple columns in the DataFrame:

import pandas as pd
import numpy as np

data = {'first_set_of_numbers':  [1,2,3,4,5,np.nan,6,7,np.nan,np.nan,8,9,10,np.nan],
        'second_set_of_numbers': [11,12,np.nan,13,14,np.nan,15,16,np.nan,np.nan,17,np.nan,19,np.nan],
        'third_set_of_numbers': [20,21,22,23,np.nan,24,np.nan,26,27,np.nan,np.nan,28,29,30]
       }
df = pd.DataFrame(data,columns=['first_set_of_numbers','second_set_of_numbers','third_set_of_numbers'])

print (df)

Now you’ll see 14 instances of NaN across multiple columns in the DataFrame:

Create NaN Values in Pandas DataFrame

(2) Importing a file with blank values

If you import a file using Pandas, and that file contains blank values, then you’ll get NaN values for those blank instances.

Here, I imported a CSV file using Pandas, where some values were blank in the file itself:

Import CSV FIle with Blank values

This is the syntax that I used to import the file:

import pandas as pd

df = pd.read_csv (r'C:\Users\Ron\Desktop\Products.csv')

print (df)

I then got two NaN values for those two blank instances:

NaN values

(3) Applying to_numeric

Let’s now create a new DataFrame with a single column. Only this time, the values under the column would contain a combination of both numeric and non-numeric data:

set_of_numbers
1
2
AAA
3
BBB
4

This is how the DataFrame would look like:

import pandas as pd

data = {'set_of_numbers':  [1,2,"AAA",3,"BBB",4]}
df = pd.DataFrame(data,columns=['set_of_numbers'])

print (df)

You’ll now see 6 values (4 numeric and 2 non-numeric):

set of numbers

You can then use to_numeric in order to convert the values under the ‘set_of_numbers’ column into a float format. But since 2 of those values are non-numeric, you’ll get NaN for those instances:

df['set_of_numbers'] = pd.to_numeric(df['set_of_numbers'], errors='coerce')

Here is the complete code:

import pandas as pd

data = {'set_of_numbers': [1,2,"AAA",3,"BBB",4]}
df = pd.DataFrame(data,columns=['set_of_numbers'])

df['set_of_numbers'] = pd.to_numeric(df['set_of_numbers'], errors='coerce')

print (df)

Notice that the two non-numeric values became NaN:

Create NaN Values in Pandas DataFrame

You may also want to review the following guides that explain how to: