Pandas DataFrame Funzione DataFrame.interpolate()
-
Sintassi di
pandas.DataFrame.interpolate()
: -
Codici di esempio: interpola tutti i valori
NaN
inDataFrame
con il metodoDataFrame.interpolate()
-
Codici di esempio: Metodo
DataFrame.interpolate()
Con il parametromethod
-
Codici di esempio: Pandas Metodo
DataFrame.interpolate()
con il parametroaxis
per interpolare lungo l’asserow
-
Codici di esempio: Metodo
DataFrame.interpolate()
con parametrolimit
-
Codici di esempio: Metodo
DataFrame.interpolate()
con parametrolimit_direction
-
Interpolare i dati delle serie temporali con il metodo
DataFrame.interpolate()
La funzione Python Pandas DataFrame.interpolate()
riempie i valori NaN
nel DataFrame utilizzando la tecnica di interpolazione.
Sintassi di pandas.DataFrame.interpolate()
:
DataFrame.interpolate(
method="linear",
axis=0,
limit=None,
inplace=False,
limit_direction="forward",
limit_area=None,
downcast=None,
**kwargs
)
Parametri
method |
linear , time , index , values , nearest , zero , slinear , quadratic , cubic , barycentric , krogh , polynomial , spline , piecewise_polynomial , from_derivatives , pchip , akima o None . Metodo utilizzato per interpolare i valori NaN . |
axis |
Interpola i valori mancanti lungo la riga (axis = 0) o la colonna (axis = 1) |
limit |
Numero intero. numero massimo di NaN consecutivi da interpolare. |
inplace |
Booleano. Se True , modifica il chiamante DataFrame sul posto |
limit_direction |
forward , backward o both . La direzione lungo NaNs viene interpolata quando viene specificato il limit |
limit_area |
None , inside o outside . Restrizione per l’interpolazione quando è specificato il limit |
downcast |
Dizionario. Specifica il downcast dei tipi di dati |
**kwargs |
Argomenti delle parole chiave per la funzione di interpolazione. |
Ritorno
Se inplace
è True
, un DataFrame
interpola tutti i valori NaN
utilizzando un metodo
dato; altrimenti None
.
Codici di esempio: interpola tutti i valori NaN
in DataFrame
con il metodo DataFrame.interpolate()
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3, None, 3],
'Y': [4, None, 8, None, 3]})
print("DataFrame:")
print(df)
filled_df = df.interpolate()
print("Interploated 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
Interploated DataFrame:
X Y
0 1.0 4.0
1 2.0 6.0
2 3.0 8.0
3 3.0 5.5
4 3.0 3.0
Interpola tutti i valori NaN
in DataFrame
utilizzando il metodo di interpolazione lineare
.
Questo metodo è più intelligente rispetto a pandas.DataFrame.fillna()
, che utilizza un valore fisso per sostituire tutti i valori NaN
nel DataFrame
.
Codici di esempio: Metodo DataFrame.interpolate()
Con il parametro method
Possiamo anche interpolare i valori NaN
in DataFrame
con diverse tecniche di interpolazione impostando i valori del parametro method
nella funzione DataFrame.interpolate()
.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3, None, 3],
'Y': [4, None, 8, None, 3]})
print("DataFrame:")
print(df)
filled_df = df.interpolate(method='polynomial', order=2)
print("Interploated 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
Interploated DataFrame:
X Y
0 1.000000 4.000
1 2.000000 7.125
2 3.000000 8.000
3 3.368421 6.625
4 3.000000 3.000
Questo metodo interpola tutti i valori NaN
nel DataFrame
utilizzando il metodo di interpolazione polynomial
di 2° ordine.
Qui, order=2
è l’argomento della parola chiave per la funzione polynomial
.
Codici di esempio: Pandas Metodo DataFrame.interpolate()
con il parametro axis
per interpolare lungo l’asse row
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3, None, 3],
'Y': [4, None, 8, None, 3]})
print("DataFrame:")
print(df)
filled_df = df.interpolate(axis=1)
print("Interploated 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
Interploated DataFrame:
X Y
0 1.0 4.0
1 2.0 2.0
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Qui, impostiamo axis=1
per interpolare i valori NaN
lungo l’asse della riga. Nella seconda riga, il valore NaN
viene sostituito utilizzando l’interpolazione lineare lungo la seconda riga.
Tuttavia, nella quarta riga, i valori NaN
rimangono anche dopo l’interpolazione, poiché entrambi i valori nella quarta riga sono NaN
.
Codici di esempio: Metodo DataFrame.interpolate()
con parametro limit
Il parametro limit
nel metodo DataFrame.interpolate()
limita il numero massimo di valori NaN
consecutivi che devono essere riempiti dal metodo.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3, None, 3],
'Y': [4, None, None, None, 3]})
print("DataFrame:")
print(df)
filled_df = df.interpolate( limit = 1)
print("Interploated DataFrame:")
print(filled_df)
Produzione:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 NaN
3 NaN NaN
4 3.0 3.0
Interploated DataFrame:
X Y
0 1.0 4.00
1 2.0 3.75
2 3.0 NaN
3 3.0 NaN
4 3.0 3.00
Qui, una volta che un NaN
viene riempito in una colonna dall’alto, i successivi valori NaN
consecutivi nella stessa colonna rimangono invariati.
Codici di esempio: Metodo DataFrame.interpolate()
con parametro limit_direction
Il parametro limit-direction
nel metodo DataFrame.interpolate()
controlla la direzione lungo un particolare asse, in cui i valori vengono interpolati.
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3, None, 3],
'Y': [4, None, None, None, 3]})
print("DataFrame:")
print(df)
filled_df = df.interpolate(limit_direction ='backward', limit = 1)
print("Interploated DataFrame:")
print(filled_df)
Produzione:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 NaN
3 NaN NaN
4 3.0 3.0
Interploated DataFrame:
X Y
0 1.0 4.00
1 2.0 NaN
2 3.0 NaN
3 3.0 3.25
4 3.0 3.00
Qui, una volta riempito un NaN
in una colonna dal basso, i successivi valori NaN
consecutivi nella stessa colonna rimangono invariati.
Interpolare i dati delle serie temporali con il metodo DataFrame.interpolate()
import pandas as pd
dates=['April-10', 'April-11', 'April-12', 'April-13']
fruits=['Apple', 'Papaya', 'Banana', 'Mango']
prices=[3, None, 2, 4]
df = pd.DataFrame({'Date':dates ,
'Fruit':fruits ,
'Price': prices})
print(df)
df.interpolate(inplace=True)
print("Interploated DataFrame:")
print(df)
Produzione:
Date Fruit Price
0 April-10 Apple 3.0
1 April-11 Papaya NaN
2 April-12 Banana 2.0
3 April-13 Mango 4.0
Interploated DataFrame:
Date Fruit Price
0 April-10 Apple 3.0
1 April-11 Papaya 2.5
2 April-12 Banana 2.0
3 April-13 Mango 4.0
A causa di inplace=True
, l’originale DataFrame
viene modificato dopo aver chiamato la funzione interpolate()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn