Saltar al contenido

Comprobando si un valor particular (en la celda) es NaN en pandas DataFrame que no funciona usando ix o iloc

Si te encuentras con algún detalle que no entiendes puedes dejarlo en los comentarios y haremos todo lo posible de ayudarte lo más rápido posible.

Solución:

Prueba esto:

In [107]: pd.isnull(df.iloc[1,0])
Out[107]: True

ACTUALIZAR: en versiones más nuevas de Pandas use pd.isna():

In [7]: pd.isna(df.iloc[1,0])
Out[7]: True

La respuesta anterior es excelente. Aquí está lo mismo con un ejemplo para una mejor comprensión.

>>> import pandas as pd
>>>
>>> import numpy as np
>>>
>>> pd.Series([np.nan, 34, 56])
0     NaN
1    34.0
2    56.0
dtype: float64
>>>
>>> s = pd.Series([np.nan, 34, 56])
>>> pd.isnull(s[0])
True
>>>

También probé un par de veces, las siguientes pruebas no funcionaron. Gracias a @MaxU.

>>> s[0]
nan
>>>
>>> s[0] == np.nan
False
>>>
>>> s[0] is np.nan
False
>>>
>>> s[0] == 'nan'
False
>>>
>>> s[0] == pd.np.nan
False
>>>

pd.isna(cell_value) se puede usar para verificar si un valor de celda dado es nan. Alternativamente, pd.notna(cell_value) para comprobar lo contrario.

Del código fuente de pandas:

def isna(obj):
    """
    Detect missing values for an array-like object.

    This function takes a scalar or array-like object and indicates
    whether values are missing (``NaN`` in numeric arrays, ``None`` or ``NaN``
    in object arrays, ``NaT`` in datetimelike).

    Parameters
    ----------
    obj : scalar or array-like
        Object to check for null or missing values.

    Returns
    -------
    bool or array-like of bool
        For scalar input, returns a scalar boolean.
        For array input, returns an array of boolean indicating whether each
        corresponding element is missing.

    See Also
    --------
    notna : Boolean inverse of pandas.isna.
    Series.isna : Detect missing values in a Series.
    DataFrame.isna : Detect missing values in a DataFrame.
    Index.isna : Detect missing values in an Index.

    Examples
    --------
    Scalar arguments (including strings) result in a scalar boolean.

    >>> pd.isna('dog')
    False

    >>> pd.isna(np.nan)
    True

Reseñas y calificaciones del post

Nos encantaría que puedieras recomendar este tutorial si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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