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