La función DataFrame.fillna()de la Bi­blio­te­ca Python Pandas se utiliza para re­em­pla­zar 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 pa­rá­me­tros y su sintaxis es la siguiente:

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

Pa­rá­me­tros re­le­va­n­tes

Podemos ajustar el co­m­po­r­ta­mie­n­to de la función DataFrame.fillna() de Pandas uti­li­za­n­do los si­guie­n­tes pa­rá­me­tros:

Parámetro De­s­cri­p­ción Valor por defecto
value Un valor escalar, un di­c­cio­na­rio de Python o una Serie para re­em­pla­zar 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 di­re­c­ta­me­n­te en el DataFrame original False
limit Entero que limita el número de valores NaN a re­em­pla­zar None
Nota

Es probable que el parámetro method deje de ser co­m­pa­ti­ble en futuras versiones. Los de­sa­rro­lla­do­res podrán utilizar entonces obj.ffill() o obj.bfill(), re­s­pe­c­ti­va­me­n­te, ya que tienen el mismo efecto que el parámetro method.

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

Existen di­fe­re­n­tes 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 in­te­r­pre­ta como NaN en Da­ta­Fra­mes y Series.

Ahora puedes utilizar la función fillna() de Pandas para re­em­pla­zar 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 re­em­pla­za­dos 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 uti­li­zar­se para rellenar los valores NaN con los valores an­te­rio­res 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 re­em­pla­za­do por los valores an­te­rio­res 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 po­s­te­rio­res de la misma fila. Para ello, debes usar el método bfill y, además, es­ta­ble­cer 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 re­em­pla­za­dos por sus valores po­s­te­rio­res, re­s­pe­c­ti­va­me­n­te. En la primera fila queda un valor NaN, ya que en esa fila no existe ningún valor posterior con el que re­em­pla­zar­lo.

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
Hosting
Hosting de primera al mejor precio
  • 3x más rápido, ahora un 60 % de ahorro
  • Alta di­s­po­ni­bi­li­dad >99.99 %
  • Solo en IONOS: hasta 500 GB incluidos
Ir al menú principal