Maison > développement back-end > Tutoriel Python > Comment remplacer efficacement les valeurs Pandas DataFrame dépassant un seuil par zéro ?

Comment remplacer efficacement les valeurs Pandas DataFrame dépassant un seuil par zéro ?

Barbara Streisand
Libérer: 2024-12-17 00:21:25
original
707 Les gens l'ont consulté

How to Efficiently Replace Pandas DataFrame Values Exceeding a Threshold with Zero?

Remplacement conditionnel Pandas

Lors de la manipulation d'un DataFrame, vous pouvez rencontrer le besoin de remplacer des valeurs répondant à certains critères. Cette question vise à expliquer comment remplacer les valeurs dépassant un seuil par zéro dans une colonne spécifique.

Approche originale et limites

L'approche initiale a tenté d'utiliser la syntaxe df [df.my_channel > 20000].my_channel = 0. Cependant, cette approche rencontre des problèmes lors du travail dans le DataFrame d'origine, comme l'a observé l'utilisateur.

Solution utilisant l'indexeur .loc

Pour pour résoudre ce problème, on peut utiliser l'indexeur .loc, qui est recommandé dans les versions plus récentes de Pandas. Cette syntaxe permet une sélection et une modification précises des lignes et des colonnes. Pour réaliser le remplacement souhaité, vous pouvez utiliser le code suivant :

mask = df.my_channel > 20000
column_name = 'my_channel'
df.loc[mask, column_name] = 0
Copier après la connexion

Vous pouvez également condenser le code en une seule ligne :

df.loc[df.my_channel > 20000, 'my_channel'] = 0
Copier après la connexion

Explication

La variable masque sélectionne les lignes où df.my_channel dépasse 20000. Par la suite, df.loc[mask, column_name] = 0 définit la colonne my_channel à zéro pour les lignes où le masque est True.

Remarque

Il est impératif d'utiliser le . loc indexeur dans ce cas, car l'utilisation de .iloc avec une indexation booléenne sur une colonne de type entier entraînera un NotImplementedError.

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