Maison >développement back-end >Tutoriel Python >Comment puis-je appliquer efficacement plusieurs fonctions aux colonnes DataFrame groupées dans Pandas ?
Contrairement à l'objet groupby Series, l'application de plusieurs fonctions à un objet groupby DataFrame à l'aide d'un dictionnaire n'est pas simple. Cependant, il existe des moyens efficaces d'y parvenir en utilisant les méthodes suivantes :
Utilisation de la méthode apply
Si les fonctions souhaitées fonctionnent sur des colonnes individuelles, il est préférable d'exploiter la méthode apply. une option appropriée. La méthode apply permet de passer une fonction qui transforme un groupe entier (un DataFrame) en un autre objet. Par exemple :
grouped = df.groupby('group') aggregated = grouped.apply(lambda x: pd.Series({ 'a_sum': x['a'].sum(), 'a_max': x['a'].max(), 'b_mean': x['b'].mean(), }))
Cette approche agrège efficacement plusieurs colonnes et renvoie un DataFrame avec les colonnes souhaitées.
Renvoi d'une série depuis apply
Lorsqu'il s'agit de plusieurs colonnes qui doivent interagir, la méthode agg ne peut pas être utilisée car elle transmet implicitement une série à la fonction d'agrégation. Au lieu de cela, une fonction personnalisée peut être créée qui renvoie une série. Par exemple :
def aggregate_group(x): return pd.Series({ 'a_sum': x['a'].sum(), 'b_mean': x['b'].mean(), 'c_d_prod': (x['c'] * x['d']).sum() }) grouped = df.groupby('group') result = grouped.apply(aggregate_group)
Cette méthode permet d'appliquer plusieurs fonctions à plusieurs colonnes groupées et de renvoyer les résultats en une seule étape.
Personnalisation des noms de fonctions
Si vous le souhaitez, des noms personnalisés peuvent être attribués aux fonctions à l'aide de l'attribut __name__. Définissez simplement __name__ sur le nom souhaité après avoir défini la fonction, ce qui améliorera la clarté des colonnes générées.
Il convient de noter que l'utilisation de boucles pour parcourir un objet groupby est généralement moins efficace que les méthodes ci-dessus. Pandas est optimisé pour les opérations vectorisées, ce qui fait de ces méthodes intégrées l'approche privilégiée pour une analyse efficace au niveau du groupe.
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!