【发布时间】:2017-07-24 10:45:15
【问题描述】:
下面是我的数据框df,它有3个变量和大约10万个数据点,
ID A B C
1 35 0 0
2 28 0 0
3 36 0 0
4 99 0 0
5 25 1 0
6 65 1 0
7 98 1 0
8 95 1 0
9 67 0 65
10 95 0 65
11 94 0 65
12 4 0 65
13 2 -1 0
14 62 -1 0
15 95 -1 0
16 25 -1 0
17 36 0 19.5
18 3 0 19.5
现在,我想创建另一个变量D,其中包含A 的最后一个数据点B == 1 or -1 和C 中的下一个值之间的差异B == 1 or -1。
预期输出
ID A B C D
1 35 0 0 0
2 28 0 0 0
3 36 0 0 0
4 99 0 0 0
5 25 1 0 0
6 65 1 0 0
7 98 1 0 0
8 95 1 0 30
9 67 0 65 0
10 95 0 65 0
11 94 0 65 0
12 4 0 65 0
13 2 -1 0 0
14 62 -1 0 0
15 95 -1 0 0
16 25 -1 0 5.5
17 36 0 19.5 0
18 3 0 19.5 0
注意
例如。 D8 = A8-c9,类似D16 = A16 - C17,一直持续到数据帧结束。
更新预期输出
ID A B C D
1 35 0 0 0
2 28 0 0 0
3 36 0 0 0
4 99 0 0 0
5 25 1 0 0
6 65 1 0 0
7 98 1 0 0
8 95 1 0 30
9 67 0 65 0
10 95 0 65 0
11 94 1 65 0
12 4 0 65 0
13 2 -1 0 0
14 62 -1 0 0
15 95 -1 0 0
16 25 -1 0 5.5
17 36 0 19.5 0
18 3 0 19.5 0
19 5 0 19.5 0
20 68 1 19.5 0
21 17 0 0 0
更新问题
另一个条件是,如果C 列中的值与接下来的 4 个值相同,则程序不应考虑减去值 A 和 C 例如,B11 ==1 它有变化值为 1,但程序不应考虑该数据点来查找 A11 and C12 之间的差异,因为当 B 发生变化时,C 的值仍在 4 的计数范围内。 B20 处的数据点也是如此。
【问题讨论】: