Maison  >  Article  >  développement back-end  >  Comment créer une colonne conditionnelle If-Else-Else dans Pandas ?

Comment créer une colonne conditionnelle If-Else-Else dans Pandas ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-20 06:55:02506parcourir

How to Create an If-Else-Else Conditional Column in Pandas?

Création d'une colonne conditionnelle If-Else-Else dans Pandas

Lorsque vous travaillez avec des données, il est souvent nécessaire de créer de nouvelles colonnes basées sur des données spécifiques. conditions. Pandas fournit une syntaxe qui simplifie ce processus, vous permettant de définir des conditions if-elif-else en une seule étape.

Pour illustrer cela, considérons le DataFrame suivant :

    A    B
a   2    2
b   3    1
c   1    3

Nous souhaitez créer une nouvelle colonne 'C' qui suit ces conditions :

  • Si A == B, définissez C sur 0
  • Si A > B, réglez C sur 1
  • Si A < B, définissez C sur -1

Utilisation d'une fonction personnalisée

Une approche consiste à définir une fonction personnalisée qui évalue ces conditions pour chaque ligne :

<code class="python">def my_function(row):
    if row['A'] == row['B']:
        return 0
    elif row['A'] > row['B']:
        return 1
    else:
        return -1<p>La méthode apply() peut ensuite être utilisée pour appliquer cette fonction à chaque ligne du DataFrame, créant la colonne 'C' :</p>
<pre class="brush:php;toolbar:false"><code class="python">df['C'] = df.apply(my_function, axis=1)</code>

Approche vectorisée

Pour une solution vectorisée plus efficace, nous pouvons utiliser la fonction np.where de NumPy avec l'indexation logique des pandas :

<code class="python">df['C'] = np.where(
    df['A'] == df['B'], 0, np.where(
    df['A'] >  df['B'], 1, -1))</code>

Cela élimine le besoin d'une fonction personnalisée, ce qui entraîne une solution plus rapide et plus optimisée.

Le DataFrame résultant avec la colonne 'C' :

    A    B    C
a   2    2    0
b   3    1    1
c   1    3   -1

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