Я перевожу этот кусок кода sas в панд. Код sas в основном группирует наблюдения по ключу. Внутри каждой группы создается новая переменная A
, где A[0] = B[0] / C[0] / .25
. Тогда для i >= 1
, A[i] = A[i - 1] * .85 + B[i] / C[i]
. B
и C
- другие переменные в кадре данных.
Я не думаю, что df.groupby().attribute
делает это.
data data;
set data2;
by key1 key2;
retain A;
if first.key1 then A = (B / C) /(.25);
else A = A * .85 + B / C;
run;
Ожидаемый результат для группы g01
key1 B C A
g01 1 2 2 2 = 1 / 2 /.25
g01 2 1 3.7 3.7 = 2 * .85 + 2 / 1
g01 2 4 3.645 3.645 = 3.7 * .85 + 2 / 4
Я думал о том, чтобы сначала получить ключи группы и прокрутить их имена. Но, может быть, есть лучший способ?