【发布时间】:2019-01-09 01:14:53
【问题描述】:
我正在将这段 sas 代码翻译成 pandas。 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
我一直在考虑首先获取组键并遍历这些组名。但也许有更好的方法?
【问题讨论】:
-
请提供您的示例输入和输出,有人可以帮助您
-
您可以检查您可以通过 groupby 传递的应用功能,但是我们需要示例数据和@Kiran 所说的输出来重现问题并提出任何解决方案。 :)
-
您好,谢谢!我添加了预期的输出。各位大佬可以看一下吗?