我有一个包含 XY 和距离的数据框。我想做的是将距离存储为变量,如果 X 或 Y 的值大于 0,则从下一个距离中减去它
这是一个示例 df
dist x y
0 12.93 99.23
200 0 0
400 0 0
600 0 0
800 0 0
1000 12.46 99.14
1200 0 0
1400 0 0
1600 0 0
1800 0 0
2000 12.01 99.07
这是新的df
dist x y
0 12.93 99.23
200 0 0
400 0 0
600 0 0
800 0 0
0 12.46 99.14
200 0 0
400 0 0
600 0 0
800 0 0
2000 12.01 99.07
最后一个值无关紧要,但从技术上讲,它应该是 0。
这个想法是,在每个已知的 XY 处,将距离指定为 0 并减去该距离,直到下一个已知的 XY在上面的例子中,距离是四舍五入的数字,但实际上,它们可能像
132.05
19.999
1539.65
vân vân.
nghiên cứu转换
df.dist-=df.groupby(df.x.ne(0).cumsum())['dist'].transform('first')
df
Out[769]:
dist x y
0 0 12.93 99.23
1 200 0.00 0.00
2 400 0.00 0.00
3 600 0.00 0.00
4 800 0.00 0.00
5 0 12.46 99.14
6 200 0.00 0.00
7 400 0.00 0.00
8 600 0.00 0.00
9 800 0.00 0.00
10 0 12.01 99.07
Tôi là một lập trình viên xuất sắc, rất giỏi!