Différences groupées chez les pandas avec plusieurs champs
Dans cette situation, nous visons à calculer les différences de scores pour différentes combinaisons de sites et de pays sur heure.
Pour y parvenir, nous commençons par trier le dataframe en fonction du site, du pays et de la date :
<code class="python">df = df.sort_values(by=['site', 'country', 'date'])</code>
Ensuite, nous utilisons groupby et diff pour calculer les différences au sein de chaque site. et groupe de pays :
<code class="python">df['diff'] = df.groupby(['site', 'country'])['score'].diff().fillna(0)</code>
Cela génère des différences au sein de chaque site et groupe de pays et remplit les valeurs manquantes avec 0.
Enfin, nous affichons les résultats :
<code class="python">print(df) Output: date site country score diff 8 2018-01-01 fb es 100 0.0 9 2018-01-02 fb gb 100 0.0 5 2018-01-01 fb us 50 0.0 6 2018-01-02 fb us 55 5.0 7 2018-01-03 fb us 100 45.0 1 2018-01-01 google ch 50 0.0 4 2018-01-02 google ch 10 -40.0 0 2018-01-01 google us 100 0.0 2 2018-01-02 google us 70 -30.0 3 2018-01-03 google us 60 -10.0</code>
Veuillez noter que le tri par ordre arbitraire n'est pas directement pris en charge. Pour de tels scénarios, envisagez de stocker votre commande dans une collection et de rendre votre colonne catégorique. De cette façon, sort_values s'alignera sur l'ordre fourni.
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!