Maison > développement back-end > Tutoriel Python > Comment puis-je appliquer une fonction personnalisée à plusieurs colonnes Pandas DataFrame pour créer une nouvelle colonne ?

Comment puis-je appliquer une fonction personnalisée à plusieurs colonnes Pandas DataFrame pour créer une nouvelle colonne ?

Linda Hamilton
Libérer: 2024-12-27 12:16:14
original
782 Les gens l'ont consulté

How Can I Apply a Custom Function to Multiple Pandas DataFrame Columns to Create a New Column?

Application d'une fonction à plusieurs colonnes dans un DataFrame Pandas

Considérez la situation suivante dans laquelle vous disposez d'un DataFrame contenant plusieurs colonnes et une fonction personnalisée vous souhaitez appliquer à ces colonnes élément par élément pour créer un nouveau colonne.

Problème :

Supposons que vous ayez un DataFrame avec trois colonnes :

df = pd.DataFrame({'ID':['1','2','3'], 'col_1': [0,2,3], 'col_2':[1,4,5]})
Copier après la connexion

Et une fonction :

def get_sublist(sta, end):
    return mylist[sta:end+1]
Copier après la connexion

Votre objectif est d'appliquer get_sublist aux colonnes 'col_1' et 'col_2' de df pour obtenir une nouvelle colonne 'col_3' qui contient les sous-listes correspondantes de 'mylist'.

Solution :

Pour y parvenir, vous pouvez utiliser l'opération Pandas suivante :

df['col_3'] = df.apply(lambda x: get_sublist(x.col_1, x.col_2), axis=1)
Copier après la connexion

Voici une répartition des code:

  • df.apply() : applique la fonction donnée par élément à chaque ligne du DataFrame.
  • lambda x : une fonction anonyme qui accepte un seul argument x, qui représente une ligne du DataFrame.
  • x : L'objet de ligne DataFrame qui contient les valeurs de 'col_1' et 'col_2' colonnes pour l'itération actuelle.
  • get_sublist(x.col_1, x.col_2) : appelle la fonction get_sublist avec les valeurs 'col_1' et 'col_2' de la ligne actuelle.
  • axis= 1 : Spécifie que la fonction doit être appliquée sur chaque ligne du DataFrame, ce qui entraîne un nouveau column.

En utilisant cette méthode, le DataFrame résultant aura la structure suivante :

  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']
Copier après la connexion

Notez que cette solution vous permet de passer n'importe quelle fonction personnalisée à la méthode apply() et appliquez-le à plusieurs colonnes simultanément. En accédant aux valeurs des colonnes via x.col_name, vous pouvez utiliser en toute sécurité les noms de colonnes même s'ils contiennent des espaces ou ont le même nom que les attributs DataFrame existants.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal