Maison  >  Article  >  développement back-end  >  Comment créer efficacement plusieurs nouvelles colonnes à partir d’une fonction dans Pandas ?

Comment créer efficacement plusieurs nouvelles colonnes à partir d’une fonction dans Pandas ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 20:58:02105parcourir

How to Efficiently Create Multiple New Columns from a Function in Pandas?

Création de plusieurs nouvelles colonnes à partir d'une fonction à l'aide de Pandas

Dans Pandas, vous pouvez rencontrer des situations dans lesquelles vous devez créer plusieurs nouvelles colonnes basées sur une fonction personnalisée appliquée à un colonne existante. La tâche peut sembler simple, mais des défis inattendus peuvent survenir en raison du type de retour attendu de la fonction.

Approche originale : attribution à une plage d'index

Au départ, vous pouvez tenter d'attribuer la sortie de une fonction directement vers une plage d'index dans un DataFrame en utilisant la syntaxe df.ix[: ,10:16] = df.textcol.map(extract_text_features) . Cependant, cette approche peut souvent entraîner des erreurs en raison du type de retour incompatible de la fonction.

Solution itérable

Une solution potentielle consiste à parcourir chaque ligne du DataFrame à l'aide de df.iterrows( ). Cette méthode vous permet d'appliquer la fonction à chaque ligne individuellement et de capturer les résultats sous forme de tuple. Cependant, cette approche peut être considérablement plus lente que les autres options.

Utiliser zip()

Une approche plus efficace et plus flexible consiste à utiliser la fonction zip() en conjonction avec map() pour créer les nouvelles colonnes. La fonction zip() combine la sortie de la fonction dans un tuple, qui peut ensuite être décompressé en colonnes individuelles. Par exemple, le code suivant montre comment créer six nouvelles colonnes à l'aide de la méthode zip() :

<code class="python">df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = zip(*df['num'].map(powers))</code>

Méthodes DataFrame améliorées

Les mises à jour récentes de Pandas ont introduit des méthodes plus pratiques pour appliquer des fonctions. aux colonnes et créer de nouvelles colonnes. Par exemple, la méthode df.apply() vous permet de spécifier le format de sortie (DataFrame, Series ou liste) et de gérer des paramètres supplémentaires. De plus, la méthode df.assign() vous permet de créer de nouvelles colonnes directement sans attribuer explicitement la sortie. Ces méthodes plus récentes offrent plus de flexibilité et d'efficacité dans la création de plusieurs nouvelles colonnes basées sur une fonction.

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