Ajouter une colonne de compteur séquentiel sur les groupes à un DataFrame Pandas sans rappel
Dans la bibliothèque pandas, on peut utiliser des méthodes plus efficaces que fonctions de rappel pour ajouter des colonnes de compteurs séquentiels aux trames de données groupées. La fonction cumcount() propose une approche alternative. Voici comment l'implémenter :
import pandas as pd df = pd.DataFrame( columns=" index c1 c2 v1 ".split(), data=[ [0, "A", "X", 3], [1, "A", "X", 5], [2, "A", "Y", 7], [3, "A", "Y", 1], [4, "B", "X", 3], [5, "B", "X", 1], [6, "B", "X", 3], [7, "B", "Y", 1], [8, "C", "X", 7], [9, "C", "Y", 4], [10, "C", "Y", 1], [11, "C", "Y", 6], ], ).set_index("index", drop=True) # Add a sequential counter column df["seq"] = df.groupby(["c1", "c2"]).cumcount() + 1 print(df)
Cet extrait de code regroupe le dataframe par « c1 » et « c2 », puis applique la fonction cumcount() à chaque groupe pour compter les lignes de ce groupe. Le résultat est une trame de données avec une colonne « seq » supplémentaire contenant les décomptes séquentiels pour chaque groupe :
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
Cette approche élimine le besoin de fonctions de rappel et fournit une solution plus concise et efficace pour ajouter des colonnes de compteurs séquentiels. aux dataframes pandas groupés.
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!