Maison >développement back-end >Tutoriel Python >Comment remplir des valeurs NaN dans un DataFrame Pandas avec des valeurs précédentes ou suivantes ?

Comment remplir des valeurs NaN dans un DataFrame Pandas avec des valeurs précédentes ou suivantes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-03 11:01:09379parcourir

How to Fill NaN Values in a Pandas DataFrame with Preceding or Following Values?

Remplacer les NaN par des valeurs précédentes ou suivantes dans Pandas DataFrame

Question

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.

Réponse

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn