Comprobar si el marco de datos contiene infinito en Python – Pandas

Prerrequisitos: Pandas

Hay varios casos en los que un marco de datos puede contener infinito como valor. Este artículo analiza cómo podemos realizar un seguimiento de los infinitos en nuestro marco de datos. 

Acercarse

  • Módulo de importación
  • Cree un marco de datos, para este artículo, se hace usando un diccionario. Para incluir infinito en los datos, importe el módulo NumPy y use np.inf para infinito positivo y -np.inf para infinito negativo.
  • Utilice los métodos apropiados de los que se mencionan a continuación según sus necesidades.

Método 1: use la función DataFrame.isinf() para verificar si el marco de datos contiene infinito o no. Devuelve valor booleano. Si contiene algún infinito, devolverá True. De lo contrario, devolverá False. 

Sintaxis:

isinf(array [, out])

Usando este método en sí mismo, podemos obtener mucha más información sobre la presencia de infinito en nuestro marco de datos:

  • Comprobación de infinito como valores
  • Contando el número de valores infinitos
  • Recuperar el nombre de la columna con infinito como valor (es)
  • Recuperar índice/índices de fila con infinito como valor(es)

Ejemplo:

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)

Producción:

Método 2: utilice np.isfinite(dataframe_name) para comprobar la presencia de valores infinitos. Devuelve valor booleano. Devolverá False para valores infinitos y devolverá True para valores finitos.

Sintaxis:

isfinite(array [, out])

Ejemplo: 

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)

Producción:

Publicación traducida automáticamente

Artículo escrito por keerthikarathan123 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *