Open In App

Check if dataframe contains infinity in Python – Pandas

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

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:

Example:




# 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: 




# 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:


Article Tags :