El método Pandas fillna() para reemplazar valores NaN
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)
pythonPará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
|
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)
pythonEl 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
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)
pythonTodos 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)
pythonEn 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)
pythonComo 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
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos