Considérez un DataFrame avec des NaN :
In [1]: import pandas as pd df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]]) In [2]: df 0 1 2 0 1 2 3 1 4 NaN NaN 2 NaN NaN 9
L'objectif est de remplacer chaque NaN par la valeur non NaN la plus proche dans la même colonne au-dessus. Supposons que la première ligne ne contienne jamais de NaN.
Un moyen efficace d'y parvenir est d'utiliser la méthode fillna du DataFrame :
In [3]: df.fillna(method='ffill') 0 1 2 0 1 2 3 1 4 2 3 2 4 2 9
La méthode fillna emploie la stratégie forward fill (ffill), qui remplace les NaN par la dernière observation valide dans ce column.
Pour faire l'inverse, vous pouvez utiliser la méthode bfill (backward fill) :
In [4]: df.fillna(method='bfill') 0 1 2 0 1 2 3 1 4 4 3 2 9 9 9
La méthode fillna ne modifie pas le DataFrame inplace. Pour mettre à jour le DataFrame d'origine, définissez inplace=True :
In [5]: df.fillna(method='ffill', inplace=True) In [6]: df 0 1 2 0 1 2 3 1 4 2 3 2 4 2 9
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!