Maison > Article > développement back-end > Comment remplacer les valeurs d'espacement par NaN dans une trame de données Pandas ?
Trouver des valeurs d'espaces dans une trame de données Pandas et les remplacer par NaN peut être un défi. L'objectif est de convertir une trame de données avec des valeurs de chaîne vides en une trame avec des valeurs NaN, améliorant potentiellement la gestion et l'analyse des données.
La méthode df.replace() fournit une solution élégante, permettant vous devez remplacer les valeurs basées sur des expressions régulières :
<code class="python">df.replace(r'^\s*$', np.nan, regex=True)</code>
Dans ce modèle d'expression régulière, ^ correspond au début de la chaîne, s* correspond à zéro ou plusieurs caractères d'espacement et $ correspond à la fin de la chaîne. Par conséquent, cette expression régulière vérifie les chaînes composées entièrement d'espaces ou d'une chaîne vide.
Application de cette solution à l'exemple de trame de données :
<code class="python">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')) result = df.replace(r'^\s*$', np.nan, regex=True) print(result)</code>
Cela produira le résultat souhaité :
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
Comme l'a souligné Temak, si des données valides peuvent contenir des espaces, le modèle d'expression régulière peut être modifié en r'^s $' pour correspondre uniquement aux chaînes composées entièrement d'espaces :
<code class="python">df.replace(r'^\s+$', np.nan, regex=True)</code>
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!