Maison > Article > développement back-end > Comment calculer les différences basées sur le temps dans les DataFrames Pandas à l'aide de Groupby et diff() ?
Pandas regroupés par plusieurs champs pour les différences temporelles
Dans le domaine de l'analyse des données, comparer les changements au fil du temps est une tâche cruciale. Pandas, une bibliothèque Python polyvalente, offre des fonctionnalités robustes pour gérer de telles opérations. Lorsque vous traitez des données organisées par plusieurs champs catégoriels et par heure, la méthode groupby.diff() s'avère inestimable.
Considérez un DataFrame comme celui fourni, où chaque site a des scores variables selon les pays et les dates. L'objectif est de calculer le différentiel de scores de 1/3/5 jours pour chaque combinaison site/pays.
Résolution du problème
Pour y parvenir, nous utilisons le étapes suivantes :
<code class="python">df = df.sort_values(by=['site', 'country', 'date']) df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)</code>
Sortie :
Le résultat est un DataFrame qui présente les différences de score calculées :
date | site | country | score | diff |
---|---|---|---|---|
2018-01-01 | fb | es | 100 | 0.0 |
2018-01-02 | fb | gb | 100 | 0.0 |
2018-01-01 | fb | us | 50 | 0.0 |
2018-01-02 | fb | us | 55 | 5.0 |
2018-01-03 | fb | us | 100 | 45.0 |
2018-01-01 | ch | 50 | 0.0 | |
2018-01-02 | ch | 10 | -40.0 | |
2018-01-01 | us | 100 | 0.0 | |
2018-01-02 | us | 70 | -30.0 | |
2018-01-03 | us | 60 | -10.0 |
Tri avancé
Dans les cas où un ordre arbitraire est requis, comme par exemple donner la priorité à « google » par rapport à « fb », une colonne catégorielle peut être créée et attribuée comme paramètre de tri. Cela garantit que l'ordre spécifié est maintenu.
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!