Fonction Pandas DataFrame DataFrame.interpolate()
-
Syntaxe de
pandas.DataFrame.interpolate()
: -
Exemples de codes : Interpoler toutes les valeurs
NaN
dansDataFrame
avec la méthodeDataFrame.interpolate()
-
Exemples de codes :
DataFrame.interpolate()
Méthode avec le paramètremethod
-
Exemples de codes : Pandas
DataFrame.interpolate()
Méthode avec paramètreaxis
pour interpoler le long de l’axe ligne -
Exemples de codes :
DataFrame.interpolate()
Méthode avec paramètrelimit
-
Exemples de codes :
DataFrame.interpolate()
Méthode avec paramètrelimit_direction
-
Interpoler des données de séries temporelles avec la méthode
DataFrame.interpolate()
La fonction Python Pandas DataFrame.interpolate()
remplit les valeurs NaN
dans le DataFrame en utilisant une technique d’interpolation.
Syntaxe de pandas.DataFrame.interpolate()
:
DataFrame.interpolate(
method="linear",
axis=0,
limit=None,
inplace=False,
limit_direction="forward",
limit_area=None,
downcast=None,
**kwargs
)
Paramètres
method |
linear , time , index , values , nearest , zero , slinear , quadratic , cubic , barycentric , krogh , polynomial , spline , piecewise_polynomial , from_derivatives , pchip , akima ou None . Méthode utilisée pour l’interpolation des valeurs de NaN . |
axis |
Interpoler les valeurs manquantes le long de la ligne (axis=0) ou de la colonne (axis=1) |
limit |
Nombre entier. Nombre maximum de NaN consécutifs à interpoler. |
inplace |
Booléen. Si True , modifiez l’appelant DataFrame en place |
limit_direction |
forward , backward ou both . Les directions le long des NaNs sont interpolées lorsque la limit est spécifiée |
limit_area |
None , inside , ou outside . Restriction pour l’interpolation lorsque la limit est spécifiée |
downcast |
Dictionnaire. Précise les types de données |
**kwargs |
Arguments de mots-clés pour la fonction d’interpolation. |
Renvoie
Si inplace
est True
, une DataFrame interpolant toutes les valeurs NaN
en utilisant une method
donnée ; sinon None
.
Exemples de codes : Interpoler toutes les valeurs NaN
dans DataFrame
avec la méthode 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)
Production:
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
Il interpole toutes les valeurs de NaN
dans DataFrame
en utilisant la méthode d’interpolation linear
.
Cette méthode est plus intelligente que pandas.DataFrame.fillna()
, qui utilise une valeur fixe pour remplacer toutes les valeurs NaN
dans la DataFrame.
Exemples de codes : DataFrame.interpolate()
Méthode avec le paramètre method
Nous pouvons également interpoler les valeurs de NaN
dans DataFrame
avec différentes techniques d’interpolation en fixant les valeurs du paramètre method
dans la fonction 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)
Production:
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
Cette méthode interpole toutes les valeurs de NaN
dans le DataFrame
en utilisant la méthode d’interpolation polynomial
du 2ème ordre.
Ici, order=2
est le mot-clé argument pour la fonction polynomial
.
Exemples de codes : Pandas DataFrame.interpolate()
Méthode avec paramètre axis
pour interpoler le long de l’axe ligne
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)
Production:
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
Ici, nous définissons axis=1
pour interpoler les valeurs NaN
le long de l’axe de la ligne. Dans la 2ème ligne, la valeur NaN
est remplacée par une interpolation linéaire le long de la 2ème ligne.
Cependant, dans la 4ème ligne, les valeurs NaN
restent même après l’interpolation, car les deux valeurs de la 4ème ligne sont NaN
.
Exemples de codes : DataFrame.interpolate()
Méthode avec paramètre limit
Le paramètre limit
de la méthode DataFrame.interpolate()
limite le nombre maximum de valeurs NaN
consécutives à remplir par la méthode.
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)
Production:
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
Ici, une fois qu’un NaN
est rempli dans une colonne à partir du haut, les valeurs consécutives suivantes de NaN
dans la même colonne restent inchangées.
Exemples de codes : DataFrame.interpolate()
Méthode avec paramètre limit_direction
Le paramètre limit-direction
de la méthode DataFrame.interpolate()
contrôle la direction le long d’un axe particulier, dans lequel les valeurs sont interpolées.
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)
Production:
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
Ici, une fois qu’un NaN
est rempli dans une colonne à partir du bas, les valeurs consécutives suivantes de NaN
dans la même colonne restent inchangées.
Interpoler des données de séries temporelles avec la méthode 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)
Production:
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
En raison de inplace=True
, la DataFrame
originale est modifiée après avoir appelé la fonction interpolate()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn