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
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
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!