4 simple ways to Remove NaN from List in Python

5 min read
remove nan from list python

Looking for how to remove NaN from List in Python. In this article, we’ll explore various techniques to remove “NaN” values from a list in Python, ensuring your data is clean and ready for analysis.

In Python programming, lists are essential data structures. They allow us to store and manipulate data, making it easier to work with a variety of information. However, when dealing with real-world data, you often encounter missing or undefined values, which are represented as “NaN” (Not a Number).

What are “NaN” Values?

Before we dive into the methods of removing NaN from List in Python, it’s crucial to understand what they are.

“NaN” is a special floating-point value in Python that represents the concept of undefined or unrepresentable values.

It commonly occurs when working with numerical data, and it’s important to handle them appropriately.

Remove NaN from list using Python list comprehension

One of the most straightforward methods for removing “NaN” values from a list is by using a list comprehension. It allows you to create a new list with only the non “NaN” elements from the original list.

python remove nan from list

List comprehensions are a concise and Pythonic way to manipulate lists.

Here’s how you can use them to remove “NaN” values from a list:

original_list = [12.5, 4.2, 'NaN', 8.0, 'NaN', 15.7, 3.2]

# Create a new list without NaN values
cleaned_list = [x for x in original_list if x != 'NaN']


In this example, we iterate through the original_list and only include elements in the cleaned_list if they are not equal to ‘NaN’. The result will be a list without any “NaN” values.

Python Remove NaN from list using filter() function

Python provides a built-in function called filter() that can be used to filter out “NaN” values from a list. This method is particularly useful when you want to create an iterator with filtered values.

The filter() function allows you to create a filtered iterator.

Here’s how you can use it to remove “NaN” values from List in Python:

original_list = [12.5, 4.2, 'NaN', 8.0, 'NaN', 15.7, 3.2]

# Create a filtered iterator without NaN values
filtered_iterator = filter(lambda x: x != 'NaN', original_list)

# Convert the iterator to a list
cleaned_list = list(filtered_iterator)


This code uses a lambda function to define the condition for filtering out “NaN” values. It creates a filtered iterator, which is then converted into a list.

Remove NaN from  Python list using pandas library

If you’re working with more complex data structures and datasets, the panda’s library offers a powerful way to handle missing values, including “NaN.” We’ll explore how to use it to clean your data effectively.

If you’re dealing with dataframes or more complex data structures, the pandas library is a powerful tool.

Here’s how you can use it to handle “NaN” values and remove it from a List:

import pandas as pd

data = {'values': [12.5, 4.2, 'NaN', 8.0, 'NaN', 15.7, 3.2]}
df = pd.DataFrame(data)

# Remove NaN values from the dataframe
cleaned_df = df[df['values'] != 'NaN']

# Convert the result back to a list
cleaned_list = cleaned_df['values'].tolist()


With pandas, you create a dataframe and then filter the rows where the ‘values’ column is not equal to ‘NaN’.

Finally, you convert the result back to a list.

How to Remove NaN from list using Python numpy library

Another popular library in the Python data science ecosystem is numpy.

It provides advanced tools for numerical computations, and we’ll see how it can help you deal with “NaN” values in a list.

Numpy is a library for numerical operations.

Here’s how you can use it to remove “NaN” values from a Python list:

import numpy as np

original_list = [12.5, 4.2, np.nan, 8.0, np.nan, 15.7, 3.2]

# Create a new list without NaN values
cleaned_list = [x for x in original_list if not np.isnan(x)]


In this code, we use np.isnan() to check for “NaN” values and create a new list without them.


Removing “NaN” values from a list in Python is a common task when working with data.

Depending on your specific use case and data structure, you can choose the method that best suits your needs.

Whether it’s using list comprehensions, the filter() function, pandas, or numpy, Python offers various options to ensure your data is clean and ready for analysis.


Q1: Can “NaN” values occur in any data type in Python?

Answer: “NaN” values are primarily associated with floating-point data types. They represent undefined or unrepresentable numerical values.

Q2: What is the difference between “NaN” and “None” in Python?

Answer: “NaN” is used for undefined or unrepresentable numerical values, primarily in floating-point data. “None” is a Python object representing the absence of a value or a null value and can be used in various data types.

Q3: Is there a performance difference between the methods discussed in the article?

Answer: The performance difference between the methods is generally negligible for small lists. However, when working with large datasets, using specialized libraries like pandas or numpy may offer better performance.

Q4: What other common uses are there for handling “NaN” values in Python?

Answer: Handling “NaN” values is essential in data analysis and machine learning. It includes data cleaning, imputing missing values, and ensuring the integrity of data for accurate analysis.

Q5: Can I use these methods to remove “NaN” values from a multidimensional list?

Answer: Yes, you can apply these methods to multidimensional lists. However, you need to adapt the code to traverse and filter each dimension properly. Libraries like pandas and numpy offer efficient solutions for such scenarios.

You might also like, a tutor for Python if you want to learn programming.