Funzione Pandas DataFrame DataFrame.fillna()
-
Sintassi di
pandas.DataFrame.fillna()
: -
Codici di esempio: Riempi tutti i valori
NaN
inDataFrame
con il metodoDataFrame.fillna()
-
Codici di esempio: Metodo
DataFrame.fillna()
Con il parametromethod
-
Codici di esempio: Metodo
DataFrame.fillna()
con parametrolimit
La funzione pandas.DataFrame.fillna()
sostituisce i valori NaN
in DataFrame
con un certo valore.
Sintassi di pandas.DataFrame.fillna()
:
DataFrame.fillna(
value=None, method=None, axis=None, inplace=False, limit=None, downcast=None
)
Parametri
value |
Scalare , dict , Series o DataFrame . Valore utilizzato per sostituire i valori NaN |
method |
backfill , bfill , pad , ffill o None . Metodo utilizzato per riempire i valori NaN . |
axis |
Riempi i valori mancanti lungo la riga (axis = 0 ) o la colonna (axis = 1 ) |
inplace |
Booleano. Se True , modifica il chiamante DataFrame sul posto |
limit |
Numero intero. Se il metodo è specificato, è il numero massimo di valori NaN consecutivi da riempire in avanti / all’indietro. Se il method non è fornito, è il numero massimo di NaN in asse da riempire. |
downcast |
Dizionario. Specifica il downcast dei tipi di dati |
Ritorno
Se inplace
è True
, un DataFrame
sostituisce tutti i valori NaN
con un valore
dato; altrimenti None
.
Codici di esempio: Riempi tutti i valori NaN
in DataFrame
con il metodo 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)
Produzione:
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
Riempie tutti i valori NaN
in DataFrame
con 5
fornito come argomento nel metodo pandas.DataFrame.fillna()
.
DataFrame.fillna()
con Mean
Sarebbe anche una buona idea sostituire i valori NaN
di una colonna per mezzo di quella colonna.
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)
Produzione:
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
Riempie i valori NaN
della colonna X
per mezzo della colonna X
e i valori NaN
della colonna Y
per mezzo della colonna Y
.
A causa di inplace=True
, l’originale DataFrame
viene modificato dopo aver chiamato la funzione 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)
Produzione:
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
Riempie tutto NaN
con 0
.
Codici di esempio: Metodo DataFrame.fillna()
Con il parametro method
Possiamo anche riempire i valori NaN
in DataFrame
usando diverse scelte del parametro 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)
Produzione:
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
L’impostazione di method="backfill"
riempie tutti i valori NaN
di DataFrame
con il valore dopo il valore NaN
nella stessa colonna.
Possiamo anche usare i metodi bfill
, pad
e ffill
per riempire i valori NaN
in DataFrame
.
method |
Descrizione |
---|---|
backfill / bfill |
riempire tutti i valori NaN di DataFrame con il valore dopo il valore NaN nella stessa colonna. |
ffill / pad |
riempire tutti i valori NaN di DataFrame con il valore prima del valore NaN nella stessa colonna. |
Codici di esempio: Metodo DataFrame.fillna()
con parametro limit
Il parametro limit
nel metodo DataFrame.fillna()
limita il numero massimo di valori NaN
consecutivi che devono essere riempiti dal metodo.
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)
Produzione:
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
Qui, una volta che un NaN
è inserito in una colonna, l’altro valore NaN
nella stessa colonna rimane così com’è.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn