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!