Maison  >  Article  >  développement back-end  >  Comment remplacer les valeurs vides (espaces) par NaN dans un Pandas DataFrame ?

Comment remplacer les valeurs vides (espaces) par NaN dans un Pandas DataFrame ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 12:57:26291parcourir

How do I replace blank values (whitespace) with NaN in a Pandas DataFrame?

Remplacement des valeurs vides (espaces blancs) par NaN dans Pandas

Le nettoyage des données est une étape cruciale dans l'analyse des données. Une tâche courante consiste à remplacer les valeurs vides (espaces) par NaN. Cela peut être fait efficacement en utilisant Pandas.

Pour y parvenir, utilisez la fonction df.replace(). Cette fonction permet une opération de recherche et de remplacement basée sur une expression régulière sur les valeurs DataFrame. Voici comment l'implémenter :

<code class="python">import numpy as np
import pandas as pd

df = pd.DataFrame([
    [-0.532681, 'foo', 0],
    [1.490752, 'bar', 1],
    [-1.387326, 'foo', 2],
    [0.814772, 'baz', ' '],
    [-0.222552, '   ', 4],
    [-1.176781,  'qux', '  '],
], columns='A B C'.split(), index=pd.date_range('2000-01-01','2000-01-06'))

# Replace fields that contain only whitespace (or are empty) with NaN
print(df.replace(r'^\s*$', np.nan, regex=True))

# Output:
#                    A    B   C
# 2000-01-01 -0.532681  foo   0
# 2000-01-02  1.490752  bar   1
# 2000-01-03 -1.387326  foo   2
# 2000-01-04  0.814772  baz NaN
# 2000-01-05 -0.222552  NaN   4
# 2000-01-06 -1.176781  qux NaN</code>

Notez que ce code remplace les champs qui contiennent uniquement des espaces ou sont vides (c'est-à-dire qu'ils correspondent à l'expression régulière r'^s*$'**). Si vos données valides contiennent des espaces blancs, ajustez l'expression régulière en conséquence (par exemple, supprimez le **$ de la fin pour r'^s ').

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