Maison > développement back-end > Tutoriel Python > Comment ajouter efficacement une colonne de compteur séquentiel aux groupes Pandas DataFrame ?

Comment ajouter efficacement une colonne de compteur séquentiel aux groupes Pandas DataFrame ?

Mary-Kate Olsen
Libérer: 2024-12-23 21:29:11
original
450 Les gens l'ont consulté

How to Efficiently Add a Sequential Counter Column to Pandas DataFrame Groups?

Ajouter une colonne de compteur séquentiel sur les groupes à une trame de données Pandas sans rappel

Le code Python fourni montre une façon d'ajouter un compteur séquentiel colonne (seq) à une trame de données en effectuant des opérations de regroupement sur des colonnes spécifiques (« c1 » et « c2 ») et en appliquant une fonction personnalisée. Cependant, il peut exister une approche plus efficace pour obtenir ce résultat sans avoir besoin d'un rappel.

Une alternative consiste à utiliser la fonction cumcount(), qui offre un moyen pratique de générer des nombres séquentiels au sein des groupes. Voici une solution améliorée :

df['seq'] = df.groupby(['c1', 'c2']).cumcount() + 1
Copier après la connexion

Cette ligne ajoute une nouvelle colonne nommée « seq » au dataframe, contenant des numéros séquentiels pour chaque groupe défini par les colonnes « c1 » et « c2 ». La fonction cumcount() est appliquée le long des groupes spécifiés et le résultat est décalé de 1 pour démarrer le décompte à partir de 1 au lieu de 0.

Voici le résultat du dataframe modifié :

   c1 c2  v1  seq
0   A  X   3    1
1   A  X   5    2
2   A  Y   7    1
3   A  Y   1    2
4   B  X   3    1
5   B  X   1    2
6   B  X   3    3
7   B  Y   1    1
8   C  X   7    1
9   C  Y   4    1
10  C  Y   1    2
11  C  Y   6    3
Copier après la connexion

En utilisant cumcount(), la colonne du compteur séquentiel est ajoutée à la trame de données d'origine, éliminant ainsi le besoin d'une fonction de rappel et simplifiant le code.

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