Maison  >  Article  >  développement back-end  >  Comment résoudre les erreurs dans la fonction Pandas \'apply\' lors de la gestion de plusieurs colonnes ?

Comment résoudre les erreurs dans la fonction Pandas \'apply\' lors de la gestion de plusieurs colonnes ?

DDD
DDDoriginal
2024-10-18 07:28:29647parcourir

How to Resolve Errors in Pandas 'apply' Function When Handling Multiple Columns?

Problème avec la fonction « appliquer » de Pandas pour gérer plusieurs colonnes ?

La bibliothèque Pandas fournit la fonction « appliquer » pour les transformations par ligne, y compris les opérations impliquant plusieurs colonnes. Cependant, les utilisateurs peuvent rencontrer des problèmes lorsqu'ils tentent d'accéder à des colonnes spécifiques au sein de la fonction.

Un de ces problèmes est illustré dans la question, où l'utilisateur tente d'appliquer une fonction qui prend deux valeurs scalaires (« a » et « c') comme entrée. Cependant, le message d'erreur indique que le nom « a » n'est pas reconnu.

La solution à ce problème réside dans l'utilisation de la syntaxe correcte pour référencer les colonnes dans la fonction « appliquer ». Au lieu d'utiliser le nom de la colonne nue (« a »), l'utilisateur doit le mettre entre crochets (« [ » et « ] »). Par exemple, pour accéder à la colonne « a », elle doit être écrite sous la forme « rangée['a'] ».

Code révisé :

<code class="python">df['Value'] = df.apply(lambda row: my_test(row['a'], row['c']), axis=1)</code>

Considérations supplémentaires :

Lors de la définition d'une fonction personnalisée à utiliser avec « appliquer », il est important de s'assurer qu'elle fonctionne sur les types de données corrects. Dans l'exemple mis à jour fourni, la fonction « my_test » est définie pour calculer la différence cumulée entre la valeur d'entrée (« a ») et la colonne « a » pour toutes les lignes du DataFrame. Cela nécessite que « a » et « df'a » soient des valeurs numériques.

Syntaxe alternative :

Pour plus de commodité, Pandas propose une syntaxe alternative pour « appliquer 'lorsque vous travaillez sur plusieurs colonnes. En spécifiant les noms des colonnes comme arguments de la fonction, les valeurs des colonnes sont accessibles directement dans la fonction.

Exemple :

<code class="python">def my_test2(row):
    return row['a'] % row['c']

df['Value'] = df.apply(my_test2, axis=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