Remplacement conditionnel dans les DataFrames Pandas
Dans les dataframes Pandas, remplacer des valeurs en fonction d'une condition est une tâche courante. Imaginons une situation dans laquelle vous devez définir les valeurs d'une colonne spécifique sur zéro si elles dépassent une valeur seuil.
Approche originale :
Une approche courante pour y parvenir est en utilisant l'indexeur df[].ix, qui est obsolète dans les versions Pandas 0.20.0 et plus haut.
df[df.my_channel > 20000]['my_channel'] = 0
Solutions alternatives :
Avec l'introduction des indexeurs loc et iloc, la méthode recommandée pour effectuer des remplacements conditionnels est :
Utilisation de l'indexeur de loc :
mask = df['my_channel'] > 20000 df.loc[mask, 'my_channel'] = 0
Le loc L'indexeur permet la sélection de lignes et de colonnes en fonction de masques booléens. Dans ce cas, le masque sélectionne les lignes où df['my_channel'] > 20000, et ces lignes sont définies sur zéro dans la colonne « my_channel ».
Utilisation de l'indexeur iloc :
mask = df['my_channel'] > 20000 df.iloc[mask.index, df.columns.get_loc('my_channel')] = 0
L'indexeur iloc permet une sélection basée sur indices entiers. Dans ce cas, les indices de masque sont utilisés pour sélectionner les lignes, et l'index de colonne de 'my_channel' est utilisé pour mettre les valeurs à zéro.
Remarque : Dans ce cas précis, l'utilisation de l'indexeur loc est recommandée plutôt que de l'indexeur iloc car iloc ne prend pas en charge l'indexation booléenne sur les colonnes entières.
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!