Maison >développement back-end >Tutoriel Python >Comment remplacer efficacement les valeurs dans les DataFrames Pandas en fonction de seuils conditionnels ?

Comment remplacer efficacement les valeurs dans les DataFrames Pandas en fonction de seuils conditionnels ?

DDD
DDDoriginal
2024-12-15 07:28:12736parcourir

How to Efficiently Replace Values in Pandas DataFrames Based on Conditional Thresholds?

Remplacement conditionnel des valeurs dans Pandas

Lorsque vous travaillez avec des DataFrames dans Pandas, il est souvent nécessaire de modifier sélectivement les valeurs en fonction de certaines conditions. Une tâche courante consiste à remplacer les valeurs d'une colonne spécifique qui dépassent un certain seuil.

Une tentative précédente utilisant le df[df.my_channel > La syntaxe 20000].my_channel = 0 s'est avérée infructueuse lorsqu'elle faisait partie du DataFrame d'origine. Cela est dû aux modifications d'indexation introduites dans Pandas 0.20.0, qui ont rendu obsolète l'indexeur .ix.

Pour remédier à cela, nous pouvons utiliser l'indexeur .loc, qui offre une méthode alternative pour accéder et modifier les lignes et les colonnes. en fonction des conditions.

mask = df.my_channel > 20000
column_name = 'my_channel'
df.loc[mask, column_name] = 0

Ce code obtient le résultat souhaité en créant d'abord un masque booléen (masque) où chaque valeur correspond à si la valeur correspondante dans la colonne df.my_channel dépasse 20000. Nous utilisons ensuite .loc pour sélectionner les lignes où le masque contient True et attribuons une valeur de 0 à la colonne column_name.

Comme alternative, la suivante Un extrait de code en ligne peut être utilisé :

df.loc[df.my_channel > 20000, 'my_channel'] = 0

Dans ce cas, il est important d'utiliser .loc au lieu de .iloc (indexation basée sur un emplacement entier) pour éviter une 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!

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