Maison >développement back-end >Tutoriel Python >Comment appliquer une fonction à plusieurs colonnes Pandas Dataframe et créer une nouvelle colonne ?

Comment appliquer une fonction à plusieurs colonnes Pandas Dataframe et créer une nouvelle colonne ?

DDD
DDDoriginal
2024-12-07 17:12:13908parcourir

How to Apply a Function to Multiple Pandas Dataframe Columns and Create a New Column?

Application d'une fonction à plusieurs colonnes d'un dataframe Pandas

La situation est la suivante : une fonction et un dataframe sont définis, et le le but est d'appliquer la fonction à deux colonnes spécifiques du dataframe pour générer une nouvelle colonne. Cependant, une tentative d'utilisation de la méthode apply avec la fonction entraîne une erreur.

Pour résoudre ce problème, il existe plusieurs approches :

Expression Lambda avec noms de colonnes

Une solution concise et lisible consiste à utiliser une expression lambda dans la méthode apply :

df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)

Cette approche directement utilise les noms de colonnes au lieu d'index numériques, ce qui le rend moins sujet aux erreurs.

Exemple avec des exemples de données

Considérez les exemples de données :

df = pd.DataFrame({'ID':['1', '2', '3'], 'col_1': [0, 2, 3], 'col_2':[1, 4, 5]})
mylist = ['a', 'b', 'c', 'd', 'e', 'f']

L'exécution du code précédent générera une nouvelle colonne, col_3, contenant le résultat :

  ID  col_1  col_2      col_3
0  1      0      1     [a, b]
1  2      2      4  [c, d, e]
2  3      3      5  [d, e, f]

Crochets pour les noms de colonnes non standard

Si les noms de colonnes contiennent des espaces ou correspondent à des attributs de dataframe existants, des crochets peuvent être utilisés :

df['col_3'] = df.apply(lambda x: f(x['col 1'], x['col 2']), axis=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!

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