Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-10-20 06:55:02
original
595 Les gens l'ont consulté

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
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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
Copier après la connexion

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