18.8 C
London
Monday, June 2, 2025
HomePandas in PythonDataFrame Functions in PythonPandas: How to Replace NaN with None

Pandas: How to Replace NaN with None

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

You can use the following basic syntax to replace NaN values with None in a pandas DataFrame:

df = df.replace(np.nan, None)

This function is particularly useful when you need to export a pandas DataFrame to a database that uses None to represent missing values instead of NaN.

The following example shows how to use this syntax in practice.

Example: Replace NaN with None in Pandas

Suppose we have the following pandas DataFrame:

import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'A': [5, 6, 8, np.nan, 4, 15, 13],
                   'B': [np.nan, 12, np.nan, 10, 23, 6, 4],
                   'C': [2, 7, 6, 3, 2, 4, np.nan],
                   'D': [5, np.nan, 6, 15, 1, np.nan, 4]})

#view DataFrame
print(df)

      A     B    C     D
0   5.0   NaN  2.0   5.0
1   6.0  12.0  7.0   NaN
2   8.0   NaN  6.0   6.0
3   NaN  10.0  3.0  15.0
4   4.0  23.0  2.0   1.0
5  15.0   6.0  4.0   NaN
6  13.0   4.0  NaN   4.0

Notice that there are several NaN values throughout the DataFrame.

To replace each NaN value with None, we can use the following syntax:

#replace all NaN values with None
df = df.replace(np.nan, None)

#view updated DataFrame
print(df)

      A     B     C     D
0   5.0  None   2.0   5.0
1   6.0  12.0   7.0  None
2   8.0  None   6.0   6.0
3  None  10.0   3.0  15.0
4   4.0  23.0   2.0   1.0
5  15.0   6.0   4.0  None
6  13.0   4.0  None   4.0

Notice that each NaN in every column of the DataFrame has been replaced with None.

Note that if you’d like to only replace NaN values with None in one particular column, you can use the following syntax:

#replace NaN values with None in column 'B' only
df['B'] = df['B'].replace(np.nan, None)

#view updated DataFrame
print(df)

      A     B    C     D
0   5.0  None  2.0   5.0
1   6.0  12.0  7.0   NaN
2   8.0  None  6.0   6.0
3   NaN  10.0  3.0  15.0
4   4.0  23.0  2.0   1.0
5  15.0   6.0  4.0   NaN
6  13.0   4.0  NaN   4.0

Notice that the NaN values have been replaced with None in column ‘B’ only.

Related: How to Replace NaN Values with Zero in Pandas

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

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories