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

Comment regrouper des valeurs consécutives dans un DataFrame Pandas ?

DDD
Libérer: 2024-11-30 06:47:10
original
233 Les gens l'ont consulté

How to Group Consecutive Values in a Pandas DataFrame?

Regroupement de valeurs consécutives dans un DataFrame Pandas

Dans l'analyse de données, nous rencontrons souvent des situations où les données sont ordonnées et il est nécessaire de regrouper des valeurs consécutives. valeurs ensemble. Cette tâche peut être réalisée chez les pandas en utilisant des techniques de regroupement personnalisées.

Supposons que nous ayons un DataFrame avec une colonne nommée « a » contenant les valeurs suivantes :

[1, 1, -1, 1, -1, -1]
Copier après la connexion

Notre objectif est de regrouper ces valeurs. valeurs en blocs consécutifs, comme ceci :

[1,1] [-1] [1] [-1, -1]
Copier après la connexion

Pour ce faire, nous pouvons utiliser les éléments suivants étapes :

  1. Créer une série personnalisée : Nous créons une nouvelle série en utilisant les fonctions ne et shift. Cette série renvoie une valeur booléenne indiquant si la valeur actuelle est différente de la valeur précédente.
  2. Utilisez la série pour le regroupement : Nous transmettons la série personnalisée à la fonction groupby. Cela regroupe les données par blocs consécutifs.
  3. Itérer sur les données groupées : Nous parcourons les données groupées et imprimons l'index, le DataFrame groupé et une liste des valeurs dans le 'une' colonne pour chaque groupe.

Voici le code qui les implémente étapes :

import pandas as pd

df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]})
print(df)

custom_series = df['a'].ne(df['a'].shift()).cumsum()
print(custom_series)

for i, g in df.groupby(custom_series):
    print(i)
    print(g)
    print(g.a.tolist())
Copier après la connexion

Cela génère le regroupement souhaité :

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]
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal