Funzione Pandas DataFrame DataFrame.fillna()
-
Sintassi di
pandas.DataFrame.fillna(): -
Codici di esempio: Riempi tutti i valori
NaNinDataFramecon 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