сортирует данные так, чтобы строки, принадлежащие одному и тому же члену, были рядом друг с другом.
df = df.sort_values(['member', 'datetime'])
создает массив смещенных переменных var2 для каждой группы члена
shifted = df.groupby('member').var2.shift() # the default shifts by 1, which is needed here
назначитьновый столбец, использующий смещенный массив для вычисления
df['newcol'] = (df.var1 - shifted) / shifted
Это добавляет дополнительный столбец
var1 var2 member datetime newcol
0 131.255 137.032 1 2017-02-02 09:15:00 NaN
1 129.700 131.193 1 2017-02-02 09:20:00 -0.053506
или, сделайте это в 1 строку:
df['newcol'] = df.var1/df.groupby('member').var2.shift()-1