Regroupement de valeurs consécutives dans un DataFrame Pandas
Cette question cherche une solution pour regrouper des valeurs consécutives dans une colonne DataFrame. Considérons le DataFrame suivant avec la colonne 'a' :
a 0 1 1 1 2 -1 3 1 4 -1 5 -1
Le but est de regrouper ces valeurs dans des sous-listes représentant des séquences consécutives, comme indiqué ci-dessous :
[1, 1] [-1] [1] [-1, -1]
Solution Utilisation de séries personnalisées
Pour y parvenir, nous pouvons tirer parti des séries personnalisées pour identifier les ruptures de valeur consécutives. Le code suivant illustre cette approche :
df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) print(df) # Create a series that identifies consecutive value breaks breaks = df['a'].ne(df['a'].shift()).cumsum() print(breaks) # Group the DataFrame by the breaks series for i, g in df.groupby(breaks): print(i) print(g) print(g.a.tolist())
La sortie affiche les regroupements de valeurs consécutives selon les besoins :
1 a 0 1 1 1 [1, 1] 2 a 2 -1 [-1] 3 a 3 1 [1] 4 a 4 -1 5 -1 [-1, -1]
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!