Maison  >  Article  >  développement back-end  >  Comment ajouter une colonne à un DataFrame à l'aide de Numpy « où » avec plus de deux conditions ?

Comment ajouter une colonne à un DataFrame à l'aide de Numpy « où » avec plus de deux conditions ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-19 13:02:02397parcourir

How to Add a Column to a DataFrame Using Numpy

Numpy "où" avec plusieurs conditions : répondre à trois conditions

Description du problème :

L'ajout d'une nouvelle colonne à un dataframe basé sur plusieurs conditions devient difficile lorsque l'on est confronté à plus de deux conditions. Le scénario donné nécessite la création d'une colonne « energy_class » avec des valeurs « élevées », « moyennes » ou « faibles » basées sur les valeurs de la colonne « consumption_energy ».

Solution :

Bien que numpy.where ne puisse gérer que deux conditions, une solution de contournement intelligente utilisant numpy.select résout le problème.

Code Python :

<code class="python"># Define column and conditions
col = 'consumption_energy'
conditions = [df2[col] >= 400, (df2[col] < 400) & (df2[col] > 200), df2[col] <= 200]

# Define choices for conditions
choices = ["high", 'medium', 'low']

# Add "energy_class" column with np.select
df2["energy_class"] = np.select(conditions, choices, default=np.nan)</code>

Exemple de résultat :

  consumption_energy energy_class
0                 459         high
1                 416         high
2                 186          low
3                 250       medium
4                 411         high
5                 210       medium
6                 343       medium
7                 328       medium
8                 208       medium
9                 223       medium

Remarque supplémentaire :

default=np.nan attribue des valeurs NaN aux lignes qui ne remplissent aucune condition . Vous pouvez le personnaliser en fonction de vos besoins.

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