Función Pandas pd.isna()

Python math 模块Funciones comunes de Pandas


pd.isna()Es la función de detección de valores faltantes más utilizada en Pandas; comprueba si cada elemento es un valor faltante y devuelve un valor booleano (TrueoFalse) estructura.

En el análisis de datos, el manejo de los valores faltantes es un primer paso muy importante.pd.isna()Puede ayudarte a identificar rápidamente las posiciones faltantes en los datos, proporcionando la base para operaciones posteriores de relleno, eliminación u otros procesamientos.


Sintaxis básica y parámetros

Formato de sintaxis

pandas.isna(obj)

Descripción de parámetros

ParámetroTipoDescripción
objDataFrame、Series、scalar、list、tupleEl objeto en el que se deben verificar los valores faltantes; puede ser cualquier tipo de datos compatible.

Descripción del valor de retorno

  • Devuelve un objeto booleano con la misma estructura que la entrada:
  • Si la entrada es un DataFrame, devuelve un DataFrame de valores booleanos
  • Si la entrada es una Series, devuelve una Series de valores booleanos
  • Si la entrada es un valor único, devuelve un valor booleano escalar

Ejemplos

Vamos a dominar completamente, a través de una serie de ejemplos de simples a complejos,pd.isna()el uso de esta función.

Ejemplo 1: Detectar valores faltantes en una Series

Ejemplo

import pandas as pd
import numpy as np

# Crear una Series que contenga valores faltantes
s = pd.Series([1, 2, np.nan, 4, None, 6])

# Detectar valores faltantes
result = pd.isna(s)
print("Series original:")
print(s)
print("\nResultado de la detección:")
print(result)

Resultado de la ejecución:

原始 Series:
0    1.0
1    2.0
2    NaN
3    4.0
4    NaN
5    6.0
dtype: float64

检测结果:
0    False
1    False
2     True
3    False
4     True
5    False
dtype: bool

Análisis del código:

  1. np.nanyNoneTodos son reconocidos como valores faltantes.
  2. En la Series booleana devuelta, las posiciones de valores faltantes sonTrue, las posiciones de valores no faltantes sonFalse

Ejemplo 2: Detectar valores faltantes en un DataFrame

Ejemplo

import pandas as pd
import numpy as np

# Crear un DataFrame que contenga valores faltantes
df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': ['a', None, 'c', 'd'],
    'C': [pd.NaT, 6, 7, 8]  # NaT es un valor faltante del tipo datetime
})

# Detectar valores faltantes
result = pd.isna(df)
print("DataFrame original:")
print(df)
print("\nResultado de la detección:")
print(result)

Resultado de la ejecución:

原始 DataFrame:
     A    B     C
0  1.0    a  None
1  2.0  None     6
2  NaN   c     7
3  4.0    d     8
dtype: object

检测结果:
       A      B      C
0  False  False   True
1  False   True  False
2   True  False  False
3  False  False  False

Análisis del código:

  • pd.NaT(Not a Time) es el valor faltante del tipo datetime, también se identifica correctamente.
  • Cada posición del DataFrame devuelve el valor booleano correspondiente.

Ejemplo 3: Contar la cantidad de valores faltantes

En el análisis de datos real, a menudo necesitamos saber cuántos valores faltantes hay.

Ejemplo

import pandas as pd
import numpy as np

# Crear datos
df = pd.DataFrame({
    'A': [1, np.nan, 3, np.nan, 5],
    'B': [np.nan, 2, np.nan, 4, np.nan],
    'C': [1, 2, 3, 4, 5]
})

# Contar la cantidad de valores faltantes por columna
print("Cantidad de valores faltantes por columna:")
print(pd.isna(df).sum())

print("\nCantidad total de valores faltantes:", pd.isna(df).sum().sum())

# Calcular la proporción de valores faltantes
print("\nProporción de valores faltantes:")
print((pd.isna(df).sum() / len(df) * 100).round(2), "%")

Resultado de la ejecución:

每列缺失值数量:
A    2
B    3
C    0
dtype: int64

总缺失值数量: 5

缺失值比例:
A    40.0
B    60.0
C     0.0
%

Ejemplo 4: Uso combinado con otras funciones

Ejemplo

import pandas as pd
import numpy as np

# Crear datos
df = pd.DataFrame({
    'name': ['Alice', 'Bob', None, 'Diana', 'Eve'],
    'age': [25, None, 35, 28, None],
    'score': [85, 90, 78, 92, 88]
})

# Usar isna para filtrar las filas que contienen valores faltantes
rows_with_na = df[pd.isna(df).any(axis=1)]
print("Filas que contienen valores faltantes:")
print(rows_with_na)

# Usar isna para rellenar valores faltantes
df_filled = df.fillna({
    'name': 'Unknown',
    'age': df['age'].mean(),  # Rellenar la edad con el valor promedio
    'score': 0
})
print("\nDataFrame después del relleno:")
print(df_filled)

Resultado de la ejecución:

包含缺失值的行:
   name   age  score
0  Alice  25.0     85
2  None  35.0     78
3  Diana  28.0     92

填充后的 DataFrame:
     name   age  score
0    Alice  25.0     85
1      Bob  29.0     90
2  Unknown  35.0     78
3    Diana  28.0     92
4      Eve   0.0     88

Notas importantes

Aviso importante:pd.isna()Identificará los siguientes valores como valores faltantes:

  • np.nan- Valores faltantes de tipo numérico
  • None- El objeto None nativo de Python
  • pd.NaT- Valores faltantes de tipo datetime

Para cadenas vacías""o0,pd.isna()devolveráFalse, porque no son valores faltantes.


Python math 模块Funciones comunes de Pandas

Otras extensiones