La méthode Pandas replace() ne fonctionne pas ? Essayez cette solution simple
Lorsque vous essayez de remplacer des chaînes dans un Pandas DataFrame à l'aide de la méthode replace(), il est possible de rencontrer un problème déroutant où aucun remplacement ne se produit. Contrairement aux remplacements complexes, cette situation implique souvent des tentatives de remplacement simples.
Pour illustrer, examinons le cadre de données suivant :
d = {'color' : pd.Series(['white', 'blue', 'orange']), 'second_color': pd.Series(['white', 'black', 'blue']), 'value' : pd.Series([1., 2., 3.])} df = pd.DataFrame(d)
Lorsque nous essayons de remplacer toutes les occurrences de « blanc » par NaN, étonnamment, rien ne se passe :
df.replace('white', np.nan)
La sortie reste inchangée :
color second_color value 0 white white 1 1 blue black 2 2 orange blue 3
Alors, quoi s'est mal passé ?
Il s'avère que la méthode replace() effectue des recherches de remplacement complet par défaut. Pour activer les remplacements partiels, nous devons définir le paramètre regex sur True :
df.replace('white', np.nan, regex=True)
Alternativement, nous pouvons utiliser la méthode str.replace(), qui offre plus de contrôle sur le processus de remplacement :
df['color'].str.replace('white', np.nan)
Astuce bonus : Si vous envisagez d'utiliser inplace=True pour effectuer le remplacement sur place, assurez-vous de comprendre son mises en garde.
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!