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!