Maison > développement back-end > Tutoriel Python > Comment appliquer une fonction à plusieurs colonnes dans un DataFrame Pandas ?

Comment appliquer une fonction à plusieurs colonnes dans un DataFrame Pandas ?

Susan Sarandon
Libérer: 2024-12-08 15:16:12
original
549 Les gens l'ont consulté

How to Apply a Function to Multiple Columns in a Pandas DataFrame?

Application de fonctions à plusieurs colonnes d'un dataframe Pandas

Supposons que nous ayons un ensemble de données dans un dataframe Pandas avec plusieurs colonnes et que nous souhaitions appliquer une fonction personnalisée à deux de ces colonnes. Cela peut être une tâche courante dans la manipulation et l’analyse des données. Voici un guide étape par étape pour y parvenir :

1. Définir la fonction :

Définissez une fonction personnalisée qui prend deux entrées, représentant les valeurs des deux colonnes. Cette fonction doit effectuer l'opération souhaitée sur ces entrées.

2. Appliquer la fonction à l'aide de Lambda :

Pandas fournit une fonction lambda qui nous permet d'appliquer une fonction à chaque ligne d'une trame de données. Nous pouvons en tirer parti pour appliquer notre fonction personnalisée aux colonnes sélectionnées.

La syntaxe pour appliquer une fonction à plusieurs colonnes à l'aide de lambda est :

df['new_column_name'] = df.apply(lambda x: your_function(x.column_1, x.column_2), axis=1)
Copier après la connexion

Où :

  • new_column_name est le nom de la nouvelle colonne qui stockera les résultats de la fonction.
  • your_function est le fonction définie par l'utilisateur qui prend deux entrées et renvoie la sortie souhaitée.
  • x représente chaque ligne du dataframe, et x.column_1 et x.column_2 accèdent aux valeurs des colonnes spécifiées.
  • axis=1 indique que la fonction est appliquée à chaque ligne, pas à chaque colonne.

3. Exemple :

Considérons l'exemple de dataframe suivant :

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

Supposons que nous souhaitions créer une nouvelle colonne appelée « col_3 » qui contient une sous-liste de la liste d'origine mylist basée sur des valeurs dans col_1 et col_2. Nous pouvons définir une fonction get_sublist comme suit :

def get_sublist(sta, end):
    return ['a', 'b', 'c', 'd', 'e', 'f'][sta:end+1]
Copier après la connexion

Maintenant, nous pouvons appliquer cette fonction en utilisant lambda comme :

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

Cela crée une nouvelle colonne 'col_3' dans le dataframe avec les sous-listes souhaitées.

4. Alternatives :

L'utilisation de lambda est une approche concise et polyvalente pour appliquer des fonctions à plusieurs colonnes de dataframe. Cependant, si vous préférez une méthode plus explicite, vous pouvez également utiliser la méthode apply() avec une fonction personnalisée qui prend une série en entrée. Cette approche implique de définir une fonction qui prend une seule entrée représentant une ligne, puis manipule cette ligne spécifique selon les besoins.

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