Dépannage de la fonction Pandas « appliquer » avec plusieurs colonnes
Lorsque vous essayez d'appliquer une fonction à plusieurs colonnes dans une trame de données Pandas à l'aide de l'option « appliquer » ', les utilisateurs peuvent rencontrer un message d'erreur si les noms de colonnes ne sont pas entourés de chaînes ou si une erreur de syntaxe se produit dans la définition de la fonction.
Pour résoudre le problème des noms non définis, assurez-vous que les noms de colonnes sont spécifiés. entre guillemets simples ou doubles. Par exemple, au lieu d'utiliser 'row[a]', utilisez 'row['a']' ou 'row["a"]'.
De plus, si la fonction utilisée dans 'apply' implique des opérations ou plusieurs boucles, il est crucial de vérifier les erreurs de syntaxe ou les instructions manquantes. Ces erreurs peuvent affecter l'exécution de la fonction et conduire à des résultats incorrects ou à des messages d'erreur.
Considérez l'exemple suivant :
df = DataFrame({'a': np.random.randn(6),
'b': ['foo', 'bar'] * 3,
'c': np.random.randn(6)})
def my_test(row):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff (row['a'] - df['a'][ix])
return cum_diff
Dans cet exemple, le message d'erreur « IndexError : index out of range » résulte de la tentative d'accès à des index inexistants pendant la boucle. Pour corriger cela, assurez-vous que les indices se trouvent dans les limites du dataframe ou utilisez une méthode d'itération différente, telle que :
def my_test(row):
cum_diff = 0
for index, value in df.iterrows():
cum_diff = (row['a'] - value['a'])
return cum_diff
En examinant attentivement la fonction et en plaçant les noms de colonnes dans des chaînes, vous pouvez résoudre efficacement les problèmes et utiliser la fonction « appliquer » avec plusieurs colonnes.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3