Groupe Pandas sur plusieurs champs avec calcul de différence
En programmation, la manipulation des données est cruciale et Pandas est une bibliothèque puissante pour effectuer ces tâches efficacement. Une question courante est de savoir comment regrouper les données selon plusieurs champs et calculer les différences. Explorons comment y parvenir.
Problème :
Considérons un DataFrame avec la structure suivante :
date site country score 0 2018-01-01 google us 100 1 2018-01-01 google ch 50 2 2018-01-02 google us 70 3 2018-01-03 google us 60 ...
Le but est de trouver le Différence de 1/3/5 jours dans les scores pour chaque combinaison « site/pays ».
Solution :
Pour résoudre ce problème, nous pouvons utiliser le groupby de Pandas et fonctions diff :
df = df.sort_values(by=['site', 'country', 'date'])
Le tri garantit que nos données sont organisées pour un regroupement et des calculs de différence appropriés.
df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)
Cette ligne regroupe le DataFrame par colonnes « site » et « pays » en utilisant groupby. Ensuite, il calcule la différence entre chaque score consécutif au sein de chaque groupe en utilisant diff. Le résultat est stocké dans une nouvelle colonne appelée « diff ». Toutes les valeurs manquantes sont remplacées par 0 à l'aide de fillna(0).
Sortie :
Le DataFrame résultant contiendra les colonnes d'origine ainsi que la colonne « diff » :
date site country score diff 0 2018-01-01 fb es 100 0.0 1 2018-01-02 fb gb 100 0.0 ...
Remarques supplémentaires :
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!