Función Pandas DataFrame DataFrame.fillna()
-
La sintaxis de
pandas.DataFrame.fillna()
: -
Códigos de ejemplo: Rellena todos los valores
NaN
en elDataFrame
con el MétodoDataFrame.fillna()
-
Códigos de ejemplo:
DataFrame.fillna()
Método con el parámetromethod
-
Códigos de ejemplo:
DataFrame.fillna()
Método con parámetrolimit
La función pandas.DataFrame.fillna()
reemplaza los valores NaN
en DataFrame
con algún valor determinado.
La sintaxis de pandas.DataFrame.fillna()
:
DataFrame.fillna(
value=None, method=None, axis=None, inplace=False, limit=None, downcast=None
)
Parámetros
value |
scalar , dict , Series , o DataFrame . Valor usado para reemplazar los valores NaN . |
method |
backfill , bfill , pad , ffill o None . Método usado para llenar los valores de NaN . |
axis |
Llenar los valores que faltan a lo largo de la fila (axis=0) o la fila (axis=1) |
inplace |
Booleana. Si es True , modifica la llamada DataFrame en su lugar. |
limit |
Entero. </Si se especifica el method , es el número máximo de valores consecutivos NaN a rellenar hacia adelante/atrás. Si el method no se especifica, es el número máximo de NaN en el eje a rellenar. |
downcast |
Diccionario. Especifica la bajada de los tipos de datos |
Retorna
Si inplace
es True
, un DataFrame
reemplazando todos los valores NaN
por el value
dado; de lo contrario None
.
Códigos de ejemplo: Rellena todos los valores NaN
en el DataFrame
con el Método DataFrame.fillna()
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(5)
print("Filled DataFrame:")
print(filled_df)
Resultado:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 5.0
2 3.0 8.0
3 5.0 5.0
4 3.0 3.0
Rellena todos los valores NaN
en el DataFrame
con 5
como argumento en el método pandas.DataFrame.fillna()
.
DataFrame.fillna()
con la media
También sería buena idea reemplazar los valores NaN
de una columna por medio de esa columna.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
df.fillna(df.mean(),inplace=True)
print("Filled DataFrame:")
print(df)
Resultado:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.00 4.0
1 2.00 5.0
2 3.00 8.0
3 2.25 5.0
4 3.00 3.0
Rellena los valores NaN
de la columna X
por medio de la columna X
y los valores NaN
de la columna Y
por medio de la columna Y
.
Debido a inplace=True
, el DataFrame
original se modifica después de llamar a la función fillna()
.
DataFrame.fillna()
Con 0
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
df.fillna(0,inplace=True)
print("Filled DataFrame:")
print(df)
Resultado:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 0.0
2 3.0 8.0
3 0.0 0.0
4 3.0 3.0
Llena todo el NaN
con 0
.
Códigos de ejemplo: DataFrame.fillna()
Método con el parámetro method
También podemos llenar los valores NaN
en DataFrame
usando diferentes opciones del parámetro method
.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(method="backfill")
print("Filled DataFrame:")
print(filled_df)
Resultado:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 8.0
2 3.0 8.0
3 3.0 3.0
4 3.0 3.0
Poniendo method="backfill"
llena todos los valores NaN
de DataFrame
con el valor después del valor NaN
en la misma columna.
También podemos usar los métodos bfill
, pad
y ffill
para llenar los valores NaN
en DataFrame
.
method |
Descripción |
---|---|
backfill / bfill |
rellena todos los valores NaN de DataFrame con el valor después del valor NaN en la misma columna. |
ffill / pad |
rellena todos los valores NaN de DataFrame con el valor anterior al valor NaN en la misma columna. |
Códigos de ejemplo: DataFrame.fillna()
Método con parámetro limit
El parámetro limit
en el método DataFrame.fillna
restringe el número máximo de valores NaN
consecutivos que el método puede llenar.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2,np.nan, 3,3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(3,limit=1)
print("Filled DataFrame:")
print(filled_df)
Resultado:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 NaN 8.0
3 3.0 NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 3.0
2 3.0 8.0
3 3.0 NaN
4 3.0 3.0
Aquí, una vez que un NaN
es llenado en una columna, el otro valor NaN
en la misma columna permanece como está.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn