Maison > Article > développement back-end > Comment créer efficacement plusieurs nouvelles colonnes à partir d'une fonction dans 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.
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.
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.
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>
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!