# Drop Infinite Values from pandas DataFrame in Python (2 Examples)

In this tutorial you’ll learn how to **remove infinite values from a pandas DataFrame** in the Python programming language.

Table of contents:

Let’s just jump right in!

## Example Data & Software Libraries

First, we have to load the pandas library:

import pandas as pd # Load pandas library |

import pandas as pd # Load pandas library

In addition, we also have to load NumPy:

import numpy as np # Import NumPy library in Python |

import numpy as np # Import NumPy library in Python

Furthermore, have a look at the exemplifying data below:

data = pd.DataFrame({'x1':range(1, 6), # Create example DataFrame 'x2':[1, np.inf, 1, 1, 1], 'x3':[5, np.inf, 6, 7, np.inf]}) print(data) # Print example DataFrame |

data = pd.DataFrame({'x1':range(1, 6), # Create example DataFrame 'x2':[1, np.inf, 1, 1, 1], 'x3':[5, np.inf, 6, 7, np.inf]}) print(data) # Print example DataFrame

Table 1 visualizes the output of the Python console and shows that our example data contains five rows and three columns. Some of the cells in our exemplifying DataFrame are infinite (i.e. inf).

## Example 1: Replace inf by NaN in pandas DataFrame

In Example 1, I’ll explain how to exchange the infinite values in a pandas DataFrame by NaN values.

This also needs to be done as first step, in case we want to remove rows with inf values from a data set (more on that in Example 2).

Have a look at the Python code and its output below:

data_new1 = data.copy() # Create duplicate of data data_new1.replace([np.inf, - np.inf], np.nan, inplace = True) # Exchange inf by NaN print(data_new1) # Print data with NaN |

data_new1 = data.copy() # Create duplicate of data data_new1.replace([np.inf, - np.inf], np.nan, inplace = True) # Exchange inf by NaN print(data_new1) # Print data with NaN

As shown in Table 2, the previous code has created a new pandas DataFrame called data_new1, which contains NaN values instead of inf values.

## Example 2: Remove Rows with NaN Values from pandas DataFrame

This example demonstrates how to drop rows with any NaN values (originally inf values) from a data set.

For this, we can apply the dropna function as shown in the following syntax:

data_new2 = data_new1.dropna() # Delete rows with NaN print(data_new2) # Print final data set |

data_new2 = data_new1.dropna() # Delete rows with NaN print(data_new2) # Print final data set

After running the previous Python syntax the pandas DataFrame you can see in Table 3 has been created. As you can see, this DataFrame contains fewer lines than the input data, since we have deleted all rows with at least one NaN value.

In case you want to learn more on the removal of NaNs from pandas DataFrames, you can have a look at this tutorial. The tutorials also explains how to remove rows with NaNs in only one specific column.

## Video & Further Resources

Do you need further explanations on the handling of infinite values in the Python programming language? Then you might watch the following video on the YouTube channel of Sebastiaan Mathôt. He’s explaining how to deal with inf and NaN values in the video:

**Please accept YouTube cookies to play this video.** By accepting you will be accessing content from YouTube, a service provided by an external third party.

If you accept this notice, your choice will be saved and the page will refresh.

In addition, you may want to have a look at the other tutorials on my homepage. I have published numerous tutorials already:

- How to Use the pandas Library in Python
- Count NaN Values in pandas DataFrame in Python
- Check If Any Value is NaN in pandas DataFrame in Python
- Remove Rows with NaN from pandas DataFrame in Python
- Drop Rows with Blank Values from pandas DataFrame in Python
- How to Modify & Edit a pandas DataFrame in Python
- Introduction to Python Programming

Summary: In this post, I have illustrated how to **drop infinite values from a pandas DataFrame** in the Python programming language. Please let me know in the comments section, in case you have any further questions.