Ich muss die Unterschiede innerhalb von Gruppen für Tausende von simulierten Experimenten berechnen. Hier ist eine vereinfachte Version der Daten:Berechnung von Diff auf einen bestimmten Wert innerhalb von Gruppen
import pandas as pd
data = {
'experiment':['exp_1','exp_1','exp_1','exp_2','exp_2','exp_3','exp_3','exp_3','exp_3'],
'variation':['control','variation_1','variation_2','control','variation_1','control','variation_1','variation_2','variation_3'],
'revenue': [100,120,155,50,95,300,500,350,610]
}
df = pd.DataFrame(data,columns=['experiment','variation','revenue'])
In [16]: df
Out[16]:
experiment variation revenue
0 exp_1 control 100
1 exp_1 variation_1 90
2 exp_1 variation_2 155
3 exp_2 control 50
4 exp_2 variation_1 95
5 exp_3 control 300
6 exp_3 variation_1 500
7 exp_3 variation_2 250
8 exp_3 variation_3 610
Beachten Sie, dass jedes Experiment nicht eine feste Anzahl Anzahl von Varianten hat - kann es nur ein A/B-Test oder ein A/B/C/D Prüfung.
Ziel ist es, die Diffs zu berechnen, indem jede Variation mit der Kontrolle in jedem Experiment verglichen wird. Das würde die folgenden Ergebnisse für die Beispieldaten geben:
In [17]: df
Out[17]:
experiment variation revenue diffs
0 exp_1 control 100 NaN
1 exp_1 variation_1 90 -10
2 exp_1 variation_2 155 55
3 exp_2 control 50 NaN
4 exp_2 variation_1 95 45
5 exp_3 control 300 NaN
6 exp_3 variation_1 500 200
7 exp_3 variation_2 250 -50
8 exp_3 variation_3 610 310
This answer ganz in der Nähe, aber es ist ein kumulativer diff an jedem Punkt in der Zeit, anstatt auf einen Vergleich mit dem ersten Wert in jeder Gruppe.