Maison >développement back-end >Tutoriel Python >Comment puis-je remplacer efficacement les NaN dans un DataFrame Pandas par des valeurs ci-dessus sans boucles ?

Comment puis-je remplacer efficacement les NaN dans un DataFrame Pandas par des valeurs ci-dessus sans boucles ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-08 16:56:09680parcourir

How Can I Efficiently Replace NaNs in a Pandas DataFrame with Values from Above Without Loops?

Remplacement NaN sans boucle dans les DataFrames Pandas

Certaines situations nécessitent la manipulation de valeurs DataFrame contenant des NaN. Pour rationaliser ce processus, envisagez le scénario : un DataFrame avec des NaN qui doivent être remplacés par des valeurs non NaN de la même colonne au-dessus d'eux.

Une solution efficace réside dans la méthode fillna des pandas. En spécifiant le paramètre de la méthode comme 'ffill' (forward fill), les NaN sont remplacés par l'observation valide la plus proche dans la colonne correspondante :

import pandas as pd

df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
df.fillna(method='ffill')

Cette méthode fonctionne en "propagant la dernière observation valide vers la suivante valide." Ceci est particulièrement utile pour préserver l'intégrité des données temporelles ou cycliques.

Pour obtenir l'effet inverse, la méthode 'bfill' (back fill) peut être utilisée. Pour une modification inplace du DataFrame, utilisez l'argument inplace=True :

df.fillna(method='ffill', inplace=True)

N'oubliez pas que la première ligne sert souvent de référence sans NaN. En utilisant cette approche, le processus de remplacement NaN devient à la fois efficace et sans boucle.

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