Maison > développement back-end > Tutoriel Python > Comment remplacer conditionnellement des valeurs dans une colonne Pandas DataFrame ?

Comment remplacer conditionnellement des valeurs dans une colonne Pandas DataFrame ?

DDD
Libérer: 2024-12-31 17:13:13
original
232 Les gens l'ont consulté

How to Conditionally Replace Values in a Pandas DataFrame Column?

Remplacement conditionnel de valeurs dans les Pandas DataFrames

Lorsque vous travaillez avec des Pandas DataFrames, vous pouvez rencontrer des situations dans lesquelles vous devez remplacer conditionnellement des valeurs basées sur un état spécifié. Cette question illustre un tel scénario, dans lequel un utilisateur cherche à remplacer les valeurs d'une colonne particulière qui dépassent une valeur seuil par zéro.

Initialement, l'utilisateur a tenté d'utiliser l'approche suivante :

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

Cependant, cette méthode n’a donné aucun résultat. En effet, Pandas a obsolète l'indexeur .ix depuis la version 0.20.0 et les utilisateurs devraient plutôt utiliser les indexeurs .loc ou .iloc.

La bonne solution implique d'utiliser .loc ou .iloc pour cibler des lignes ou des colonnes spécifiques. et effectuez le remplacement conditionnel. Voici comment utiliser .loc :

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

Vous pouvez également accomplir la même tâche sur une seule ligne en utilisant .loc :

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

La variable masque permet d'identifier les lignes qui satisfont la condition df.my_channel > 20000 et df.loc[mask, column_name] = 0 attribue 0 aux lignes sélectionnées dans la colonne spécifiée.

Remarque : Dans ce scénario spécifique, il est recommandé d'utiliser .loc à la place de .iloc pour éviter une NotImplementedError, car l'indexation booléenne basée sur des entiers avec .iloc n'est pas pris en charge.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal