Maison  >  Article  >  développement back-end  >  Comment effectuer la création de colonnes conditionnelles dans les DataFrames Pandas de Python ?

Comment effectuer la création de colonnes conditionnelles dans les DataFrames Pandas de Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-20 06:48:29664parcourir

How to Perform Conditional Column Creation in Python's Pandas DataFrames?

Création d'une colonne basée sur une logique conditionnelle en Python

Lorsque nous travaillons avec Pandas DataFrames, nous rencontrons souvent des scénarios dans lesquels nous devons créer un nouveau colonne basée sur une vérification conditionnelle entre les colonnes existantes. Ceci peut être réalisé en utilisant la fonction np.where avec des conditions imbriquées.

Pour illustrer, considérons le DataFrame suivant :

<code class="python">import pandas as pd

df = pd.DataFrame({
    "A": [2, 3, 1],
    "B": [2, 1, 3]
})</code>

Nous souhaitons créer une nouvelle colonne C basée sur les critères suivants :

  • Si A est égal à B, C doit être 0.
  • Si A est supérieur à B, C doit être 1.
  • Si A est inférieur à B , C devrait être -1.

Utilisation d'une fonction personnalisée

Une approche consiste à créer une fonction personnalisée qui implémente la logique conditionnelle et à l'appliquer au DataFrame :

<code class="python">def f(row):
    if row['A'] == row['B']:
        return 0
    elif row['A'] > row['B']:
        return 1
    else:
        return -1

df['C'] = df.apply(f, axis=1)</code>

Utilisation de np.where

Alternativement, nous pouvons utiliser la fonction np.where pour attribuer directement des valeurs à la nouvelle colonne :

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

Cette approche est vectorisée et plus efficace pour les grands ensembles de données.

Résultat :

Les deux approches produisent le résultat suivant :

<code class="python">print(df)

   A  B  C
0  2  2  0
1  3  1  1
2  1  3 -1</code>

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