La función DataFrame.fillna()de la Biblioteca Python Pandas se utiliza para reemplazar valores faltantes en un DataFrame. Esto puede resultar de gran utilidad a la hora de facilitar los procesos de limpieza de datos o de realizar análisis.

Sintaxis de la función fillna()de Pandas

La función fillna() acepta hasta cinco parámetros y su sintaxis es la siguiente:

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)
python

Parámetros relevantes

Podemos ajustar el comportamiento de la función DataFrame.fillna() de Pandas utilizando los siguientes parámetros:

Parámetro Descripción Valor por defecto
value Un valor escalar, un diccionario de Python o una Serie para reemplazar los valores NaN None
method Indica el método de relleno: relleno hacia delante (ffill) o relleno hacia atrás (bfill) None
axis Determina a lo largo de qué eje se va a realizar la operación (0 o index para las filas, 1 o columns para las columnas) 0
inplace Si es True, los cambios se realizan directamente en el DataFrame original False
limit Entero que limita el número de valores NaN a reemplazar None
Nota

Es probable que el parámetro method deje de ser compatible en futuras versiones. Los desarrolladores podrán utilizar entonces obj.ffill() o obj.bfill(), respectivamente, ya que tienen el mismo efecto que el parámetro method.

Uso del método DataFrame.fillna() de Pandas

Existen diferentes formas de utilizar la función fillna() de Pandas:

Reemplazo de valores NaN por un valor fijo

El primer paso consiste en definir un DataFrame:

import pandas as pd
# Ejemplo de DataFrame con diferentes valores
data = {
    'A': [1, 2, None, 4],
    'B': [None, 2, 3, 4],
    'C': [1, None, 3, 4]
}
df = pd.DataFrame(data)
print(df)
python

El aspecto del DataFrame que acabamos de definir es el siguiente:

A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  NaN
2  NaN  3.0  3.0
3  4.0  4.0  4.0
Nota

Ten en cuenta que, en Pandas, el valor None se interpreta como NaN en DataFrames y Series.

Ahora puedes utilizar la función fillna() de Pandas para reemplazar los valores faltantes por el valor 0:

# Reemplazo de los valores faltantes por el valor 0
df_filled = df.fillna(0)
print(df_filled)
python

Todos los valores NaN incluidos en la función han sido reemplazados por 0:

A    B    C
0  1.0  0.0  1.0
1  2.0  2.0  0.0
2  0.0  3.0  3.0
3  4.0  4.0  4.0

Uso del método de relleno hacia delante ffill

El método ffill puede utilizarse para rellenar los valores NaN con los valores anteriores de cada columna. Para ello, hay que pasarlo como parámetro a la función:

# Reemplazo de todos los valores NaN por el valor anterior
df_ffill = df.fillna(method='ffill')
print(df_ffill)
python

En este ejemplo, los valores NaN en las columnas “A” y “C” se han reemplazado por los valores anteriores en la misma columna. Como en la columna “B” no había ningún valor anterior, se mantiene el valor NaN:

A    B    C
0  1.0  NaN  1.0
1  2.0  2.0  1.0
2  2.0  3.0  3.0
3  4.0  4.0  4.0

Uso del método de relleno hacia atrás bfill por filas

Los valores NaN también se pueden rellenar con los valores posteriores de la misma fila. Para ello, debes usar el método bfill y, además, establecer el parámetro axis en 1:

df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)
python

Como resultado, los valores NaN en la fila cero y la fila dos han sido reemplazados por sus valores posteriores, respectivamente. En la primera fila queda un valor NaN, ya que en esa fila no existe ningún valor posterior con el que reemplazarlo.

A    B    C
0  1.0  1.0  1.0
1  2.0  2.0  NaN
2  3.0  3.0  3.0
3  4.0  4.0  4.0
Web Hosting
El hosting como nunca lo habías visto
  • Rápido, seguro, flexible y escalable
  • Seguro con SSL y protección DDoS
  • Dominio y asesor personal incluidos
¿Le ha resultado útil este artículo?
Ir al menú principal