Skip to content
Related Articles

Related Articles

Improve Article
Check if dataframe contains infinity in Python – Pandas
  • Last Updated : 26 Dec, 2020

Prerequisites: Pandas

There are various cases where a data frame can contain infinity as value. This article discusses how we can keep track of infinities in our data frame. 

Approach

  • Import module
  • Create a data frame, for this article, it is done using a dictionary. For including infinity in the data, import NumPy module, and use np.inf for positive infinity and -np.inf for negative infinity.
  • Use appropriate methods from the ones mentioned below as per your requirement.

Method 1: Use DataFrame.isinf() function to check whether the dataframe contains infinity or not. It returns boolean value. If it contains any infinity, it will return True. Else, it will return False. 

Syntax:

isinf(array [, out])

Using this method itself, we can derive a lot more information regarding the presence of infinity in our dataframe:



  • Checking for infinity as values
  • Counting the number of infinity values
  • Retrieve column name with infinity as value(s)
  • Retrieve row index/indices with infinity as value(s)

Example:

Python3




# Import required libraries
  
import pandas as pd
import numpy as np
  
# Create dataframe using dictionary
data = {'Student ID': [10, 11, 12, 13, 14], 
        'Age': [23, 22, 24, 22, 25],
        'Weight': [66, 72, np.inf, 68, -np.inf]}
  
df = pd.DataFrame(data)
  
display(df)
  
# checking for infinity
print()
print("checking for infinity")
  
ds = df.isin([np.inf, -np.inf])
print(ds)
  
# printing the count of infinity values
print()
print("printing the count of infinity values")
  
count = np.isinf(df).values.sum()
print("It contains " + str(count) + " infinite values")
  
# counting infinity in a particular column name
c = np.isinf(df['Weight']).values.sum()
print("It contains " + str(c) + " infinite values")
  
# printing column name where infinity is present
print()
print("printing column name where infinity is present")
col_name = df.columns.to_series()[np.isinf(df).any()]
print(col_name)
  
# printing row index with infinity
print()
print("printing row index with infinity ")
  
r = df.index[np.isinf(df).any(1)]
print(r)

Output:

Method 2: Use np.isfinite(dataframe_name) to check the presence of infinite value(s). It returns boolean value. It will return False for infinite values and it will return True for finite values.

Syntax:

isfinite(array [, out])

Example: 

Python3




# Import required libraries
  
import pandas as pd
import numpy as np
  
# Create dataframe using dictionary
data = {'Student ID': [10, 11, 12, 13, 14], 'Age': [
    23, 22, 24, 22, 25], 'Weight': [66, 72, np.inf, 68, -np.inf]}
  
df = pd.DataFrame(data)
  
d = np.isfinite(df)
  
display(d)

Output:

 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. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :