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
Libérer: 2024-12-03 11:01:09
original
370 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal