Pandas DataFrame DataFrame.fillna() Função
-
Sintaxe de
pandas.DataFrame.fillna()
: -
Códigos de exemplo: Preencher todos os valores
NaN
emDataFrame
comDataFrame.fillna()
Método -
Códigos de exemplo:
DataFrame.fillna()
Método com o parâmetromethod
-
Códigos de exemplo:
DataFrame.fillna()
Método com o parâmetrolimit
A função pandas.DataFrame.fillna()
substitui os valores NaN
em DataFrame
por algum determinado valor.
Sintaxe de pandas.DataFrame.fillna()
:
DataFrame.fillna(
value=None, method=None, axis=None, inplace=False, limit=None, downcast=None
)
Parâmetros
value |
scalar , dict , Series , ou DataFrame . Valor utilizado para substituir os valores NaN . |
method |
backfill , bfill , pad , ffill ou None . Método utilizado para preencher os valores NaN . |
axis |
Preencher valores ausentes ao longo da linha (axis=0) ou coluna (axis=1) |
inplace |
Booleano. Se True , modificar no local a opção de chamada DataFrame . |
limit |
Inteiro. Se o method for especificado, é o número máximo de valores consecutivos NaN a serem preenchidos para frente/para trás. Se o method não for dado, é o número máximo de NaN no eixo a ser preenchido. |
downcast |
Dicionário. Especifica os tipos de dados em baixa |
Retornar
Se inplace
é True
, um DataFrame
substitui todos os valores NaN
por um dado value
; caso contrário, None
.
Códigos de exemplo: Preencher todos os valores NaN
em DataFrame
com DataFrame.fillna()
Método
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
Preenche todos os valores NaN
em DataFrame
com 5
fornecidos como argumento no método pandas.DataFrame.fillna()
.
DataFrame.fillna()
Com média
Também seria uma boa idéia substituir os valores NaN
de uma coluna por meio dessa coluna.
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
Preenche os valores NaN
da coluna X
por meio da coluna X
e NaN
da coluna Y
por meio da coluna Y
.
Devido a inplace=True
, o original DataFrame
é modificado após chamar a função fillna()
.
DataFrame.fillna()
Com 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
Preenche todos os NaN
com 0
.
Códigos de exemplo: DataFrame.fillna()
Método com o parâmetro method
Também podemos preencher os valores NaN
em DataFrame
utilizando diferentes escolhas do 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
A configuração method="backfill"
preenche todos os valores NaN
de DataFrame
com o valor após o valor NaN
na mesma coluna.
Também podemos utilizar métodos bfill
, pad
e ffill
para preencher os valores NaN
em DataFrame
.
method |
Descrição |
---|---|
backfill / bfill |
preencher todos os valores NaN de DataFrame com o valor após o valor NaN na mesma coluna. |
ffill / pad |
preencher todos os valores NaN de DataFrame com o valor antes do valor NaN na mesma coluna. |
Códigos de exemplo: DataFrame.fillna()
Método com o parâmetro limit
O parâmetro limit
em DataFrame.fillna()
método restringe o número máximo de valores consecutivos NaN
a serem preenchidos pelo método.
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
Aqui, uma vez que um NaN
é preenchido em uma coluna, o outro valor de NaN
na mesma coluna permanece como está.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn