Regroupement de valeurs consécutives dans Pandas DataFrame
Chez les pandas, le regroupement de données peut être une tâche cruciale pour l'analyse et la manipulation des données. Lorsqu'on traite des données séquentielles, il devient souvent nécessaire de regrouper des valeurs consécutives partageant les mêmes caractéristiques.
Problème :
Étant donné un DataFrame avec une colonne contenant des valeurs consécutives, regroupez ces valeurs en segments contigus où les valeurs restent les mêmes.
Par exemple, si la colonne d'origine contient ce qui suit valeurs :
[1, 1, -1, 1, -1, -1]
Le résultat souhaité serait :
[1, 1] [-1 ] [1] [-1, -1]
Solution :
Pour y parvenir regroupement, pandas fournit une approche flexible en utilisant la fonction groupby. Cependant, la simple utilisation de groupby sur la colonne elle-même ne suffira pas. Au lieu de cela, nous devons créer une série personnalisée qui identifie les limites des segments.
Le code suivant montre comment mettre en œuvre cette solution :
df = pd.DataFrame({'a': [1, 1, -1, 1, -1, -1]}) # Create a custom Series that identifies segment boundaries boundaries = df['a'].ne(df['a'].shift()).cumsum() # Group data by the segment boundaries for i, g in df.groupby(boundaries): print(i) print(g) print(g.a.tolist())
Cette approche attribue des numéros séquentiels aux segments consécutifs. où les valeurs restent inchangées. À l'aide de ces numéros, les données sont ensuite regroupées en conséquence et chaque groupe est imprimé avec ses valeurs consécutives correspondantes.
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!