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

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

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

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

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>
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