Maison >développement back-end >Tutoriel Python >Comment regrouper des valeurs consécutives dans une colonne Pandas DataFrame ?

Comment regrouper des valeurs consécutives dans une colonne Pandas DataFrame ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-27 20:37:15527parcourir

How to Group Consecutive Values in a Pandas DataFrame Column?

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!

Déclaration:
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